2012-04-10 3 views
1

Im пытается создать простое поле ввода с проверкой формы, но im не на 100% уверен, как отправить сообщение URL-адресу в случае успеха. Я не 100% уверен, что если мне нужно оформить пост только в пределах сценария JQuery или если мне нужно изменить что-либо в файле views.py ...Django/JQuery Form Submission

<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Demo</title> 
    </head> 

<body> 

<script src="{{ STATIC_URL }}js/jquery.js"></script> 

<script type="text/javascript"> 
jQuery(function(){ 
     $("#btn-search").click(function(){ 
     $(".error").hide(); 
     var hasError = false; 
     var searchReg = /^[a-zA-Z0-9-]+$/; 
     var searchVal = $("#search-text").val(); 
     if(searchVal == '') { 
      $("#search-text").after('<span class="error">Please enter a search term.</span>'); 
      hasError = true; 
     } else if(!searchReg.test(searchVal)) { 
      $("#search-text").after('<span class="error">Enter valid text.</span>'); 
      hasError = true; 
     } 
     if(hasError == true) {return false;} 
          else { 
            $("#search-text").after('<span class="error">Search term accepted.</span>'); 
            return false; 
          } 
    }); 
}); 
</script> 

<form method="post" name="form1" action="/whatmask_output/"> 
{% csrf_token %} 
    <fieldset> 
      <div><label>Search:</label><input type="text" name="search-text" id="search-text" value="" size="32" /></div> 
      <div><label></label><input type="submit" value="Submit" id="btn-search" /></div> 
    </fieldset> 
</form> 

</body> 
</html> 

Любые идеи ??

ответ

1

Две вещи, чтобы изменить. Во-первых, заменить

$("#btn-search").click(function(){ 

с

$("form").submit(function(){ 

так как можно представить форму поиска, нажав возвращения/ввести в текстовое поле, минуя кнопку полностью.

Во-вторых, изменение

else { 
    $("#search-text").after('<span class="error">Search term accepted.</span>'); 
    return false; 
} 

в

else { 
    $("#search-text").after('<span class="error">Search term accepted.</span>'); 
    return true; 
} 

Это должно позволить submit действовать без дальнейшего вмешательства.

0

Дайте вашу форму идентификатор:

<form method="post" id="form1" name="form1" action="/whatmask_output/"> 

И всякий раз, когда вы будете готовы представить использование:

$('#form1').submit();