我“再次”询问jQuery Validate插件......
现在,我的问题是,在我单击提交按钮一次并且需要第二次单击以提交表单之前,错误标签不会隐藏,任何想法?如果我的输入文本有效,我需要的是错误标签隐藏。
jQuery的:
$("#form").validate({
rules: {
"name": {
required: true,
minlength: 3
},
"phone":{
required:true,
digits:true,
minlength: 9
},
"email":{
required: true
},
"storageoptions":{
required: true
},
"quantity":{
required:true,
digits:true
}
},
messages: {
"name": {
required: "Please enter a name"
},
"phone":{
required: "Required field"
},
"email":{
required: "Enter a valid email"
},
"storageoptions":{
required: "Please select an option"
},
"quantity":{
required: "This Field required"
}
},
errorPlacement: function(error, element) {
error.insertBefore(element);
},
submitHandler: function (form) {
$.ajax({
type: 'POST',
data: $(form).serialize(),
url: 'file.php',
success: function () {
form.reset();
$('#submit').hide();
$('#success-line').show().fadeOut(7000, function(){
$('#submit').show("slow");
});
}
});
return false;
}
});
这是我的演示:http://jsfiddle.net/ujDC3/
答案 0 :(得分:5)
默认情况下,jQuery Validate插件会自动清除模糊和键盘事件的错误消息。但是,your implementation was broken by invalid HTML。
没有type="input"
:
<input type="input" name="name" id="name" class="longinput" />
将它们全部更改为type="text"
:
<input type="text" name="name" id="name" class="longinput" />
现在按预期工作:http://jsfiddle.net/Y9RFt/
答案 1 :(得分:-2)
只有在验证通过后才会触发submitHandler函数,因此您按下提交按钮以通过验证,然后您必须再次点击它才能最终发送它。
我会用:
form.submit()
代替。
参考文献:
Jquery Validate Plugin Prevent Double Submit On Validation
jquery validation is forcing a double click on submit for form that submits to thickbox