我正在尝试使用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>
发布于 2010-03-08 21:39:57
beforeSubmit()
函数没有返回任何内容。
您将需要:
function validator() {
return $("#commentForm").validate();
}
假定$('#commentForm").validate()
存在并正确返回true/false。
发布于 2010-03-08 21:38:43
根据documentation,验证函数必须返回false
,以防止表单提交。
发布于 2010-03-08 21:40:40
假设validate()
方法是验证插件,这是正确的方法。如果validate方法中有任何错误,将不会提交表单。
$('#commentForm').validate({
errorClass: "invalidField",
submitHandler: function() {
$('#commentForm').ajaxSubmit(ajaxFormOptions);
}
});
其中ajaxFormOptions
是您用于提交的选项。
https://stackoverflow.com/questions/2404943
复制