我正在尝试使用jQuery ajaxForm插件中的“beforeSubmit”选项来验证数据,但即使存在无效的表单字段,表单也会提交。我哪里出错了?感谢,
$(document).ready(function() {
function validator(){
$("#commentForm").validate();
}
$('#commentForm').ajaxForm({
dataType: 'json',
url: "http://highlandfamilyeyecare.com/contactengine.php",
beforeSubmit: validator,
success: function(data) {
$('ul.form').fadeOut("slow");
$('ul.form').html(data.formula).slideDown('slow');}
});
});
和html:
<ul class="form">
<li>
<form method="post" action="form.php" id="commentForm">
<label class="white">Your Name</label>
<input class="text-input required" type="text" name="name" /></li>
<li>
<label class="white">Email</label>
<input class="text-input required email" type="text" name="email"/></li>
<li>
<li><input type='submit' value="Submit" />
</form></li>
</ul>
答案 0 :(得分:6)
beforeSubmit()
函数没有返回任何内容。
你想要:
function validator() {
return $("#commentForm").validate();
}
假设$('#commentForm").validate()
存在且正确返回true / false。
答案 1 :(得分:3)
根据documentation,验证函数必须返回false
才能阻止表单提交。
答案 2 :(得分:2)
假设validate()
方法是验证插件,这是正确的方法。如果验证方法中有任何错误,则不会提交表单。
$('#commentForm').validate({
errorClass: "invalidField",
submitHandler: function() {
$('#commentForm').ajaxSubmit(ajaxFormOptions);
}
});
其中ajaxFormOptions
是您提交的选项。