2011-05-09 167 views
0

我很難與提交處理程序... 爲什麼下面的表單域仍爲空時提交表單?jquery表單驗證

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

$(".required").each(function() { //check each instance with class of 'required'. 
if ($(this).val() == "") { //if field left blank, 
return false; //halt/prevent form submission. 
} 
//else .. 
return true; //all is ok, proceed. 
}); 

}); 

回答

3

因爲你return true;將執行任何非空場,從而防止代碼檢查各個領域。另外,你只是返回內部函數,而不是提交處理程序。你應該改寫爲這樣的:

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

    isValid = true; 

    $(".required").each(function() { //check each instance with class of 'required'. 
     if ($(this).val() == "") { //if field left blank, 
      isValid = false; 
     }  
    }); 

    return isValid; //all is ok, proceed. 

}); 
+0

太好了。謝謝你,先生。恰恰是我在找什麼,乾杯! – 2011-05-10 14:28:20

0

快速回答:我想這是因爲你的return false嵌套在一個$.each功能。