2013-03-05 140 views
1

我想验证一个表单,然后使用jQuery提交它。但提交没有被调用。我不知道发生了什么问题。jquery验证和表单提交

$('#save_vehicle').click(function(e){ 
      validate_form(e); 
}); 
// VALIDATION FUNCTION 
    function validate_form(e) { 
     if($("#manufacturer").val()=="select"){ 
      e.preventDefault(); 
      alert('Please Select Manufacturer'); 
      return false; 
     } else if($("#models").val()=="select") { 
      e.preventDefault(); 
      alert('Please Select Model'); 
      return false; 
     } else {   
      return true; 
      $('#frm_add').submit(); 
     } 
    } 

* 注:*save_vehicle是提交按钮的ID。 frm_add是表单的ID。

有人可以指出我的错误。在此先感谢

+0

shoulndt你可以returngin真提交后? – smk 2013-03-05 06:04:56

+0

它正在发生,因为您在调用提交函数之前返回true。只要从其他条件中删除返回true – 2013-03-05 06:09:07

+0

是的。有效。但我很困惑,为什么'返回true'会造成问题? – Roger 2013-03-05 06:17:50

回答

1

尝试改变:

else {   
    return true; 
    $('#frm_add').submit(); //will never be called as you returned already above 
} 

else {   
    $('#frm_add').submit(); 
} 
+0

谢谢。你能解释为什么'返回true'会产生问题吗? – Roger 2013-03-05 06:16:09

+0

@Roger“return”将阻止JavaScript执行脚本的其余部分,因此“返回true”;会避免你的submit()调用.. – 2013-03-05 06:17:55

+0

好吧。现在我明白了。非常感谢@Sudhir – Roger 2013-03-05 06:19:12

2
else {  
     $('#frm_add').submit(); 
     } 

不需要返回true。

@Roger如果使用return语句anywhere..the执行不应该进入下一行..

+0

谢谢。有效。 – Roger 2013-03-05 06:15:31