2012-08-29 61 views
0
<script type="text/javascript"> 
$(document).ready(function(){ 
$('#addprojectform').live('submit', function (e) { 
    e.preventDefault(); 
    $(".error").remove(); 

    var startdate = $("#startdate").val(); 
    var client = $('#client').val(); 
    var source_lang= $('#source_lang option:selected').length; 
    var targ_lang = $('#targ_lang option:selected').length; 
    var qty = $('#qty').val(); 

    var hasError = false; 

    if(startdate == '') { 
    $("#startdate").after('<span class="error" style="color: red;">This field is  required.</span>'); 
    hasError = true; 
} 

if(client == '') { 
    $("#client").after('<span class="error" style="color: red;">This field is required. </span>'); 
    hasError = true; 
} 

if(!(source_lang)) { 
    $("#source_lang").after('<span class="error" style="color: red;">This field is required.</span>'); 
    hasError = true; 
} 

if(!(targ_lang)) { 
    $("#targ_lang").after('<span class="error" style="color: red;">This field is required.</span>'); 
    hasError = true; 
} 
if(qty == '') { 
    $("#qty").after('<span class="error" style="color: red;">This field is required.</span>'); 
    hasError = true; 
} 
} // if translation 


if(hasError == false) 
return true; 
    }); 

}); 
</script> 

我有這段代碼。我想在提交之前驗證表單。我無法控制表單沒有錯誤。如果沒有發現錯誤,我想提交表單。我添加了下面的代碼:使用jQuery進行驗證後無法提交表單(使用preventDefault())

if(hasError == false) 
return true; 

但是沒有提交表格..任何人都可以幫忙嗎?

回答

1

刪除

e.preventDefault(); 

,改變

if(hasError == false) 
    return true; 
}); 

return !hasError; 

作爲一個側面說明,live()贊成on()不贊成在新的jQuery版本

+0

謝謝! :) Fabrizio Calderan – rakela

1

我做什麼,但它可能不會是非常美妙的是:

$('#form').submit(function(e) 
{ 
    if(!$(this).hasClass('valid')) 
    { 
     e.preventDefault(); 
     var isValid = false; 
     // do validation to set isValid true or false; 
     if(isValid) 
     { 
      $(this).addClass('valid'); 
      $(this).submit(); 
      // or possibly $(this).addClass('valid').submit(); 
      return; 
     } 
    } 
}); 

這是如何工作的,您第一次提交,它會檢查,看看是否窗體有一個名爲valid類。如果沒有,它會停止表單驗證並進行驗證。

如果有效,它會將該類添加到表單並重新提交。由於表格現在有valid類,它將繞過驗證並正常提交。

+0

感謝您的迴應 – rakela

相關問題