【发布时间】:2012-01-24 01:37:01
【问题描述】:
我有一个表单,它使用 jQuery Validate 插件进行客户端验证,并通过 AJAX 提交。提交表单后,我希望它自行重置。我已经使用.resetForm() 方法来重置字段,该方法有效,但问题是验证插件在它们集中时仍会立即尝试验证字段,并在给新提交机会输入之前给出错误输入。
示例流程:
- 最初触发验证
- 修复验证,通过 AJAX 提交表单
- 调用.resetForm(),字段清空成功
- 尝试再次填写表单
- 专注于一个字段(在我的例子中,它具有电子邮件验证)
- 在让您有机会输入输入之前,它会验证并说它不正确。
通常,插件会在告诉您输入不正确之前让您输入您的输入。有什么方法可以真正重置表单并且不会再次在焦点上发生验证,而不是一起关闭焦点验证?
谢谢,这是一个清理/简化的代码示例!
// Validation
$('#registerForm').validate({
submitHandler: function(form) {
$(form).ajaxSubmit({
success: function(response) {
if( response == 'success' ) {
resetMyForm();
}
else {
alert('unsuccessful');
}
}
})
}
});
})
function resetMyForm() {
$('#registerForm').resetForm();
v.prepareForm(); // Tried adding this, no help
v.hideErrors(); // Tried adding this, no help
}
【问题讨论】:
-
您的验证何时触发?提交还是聚焦?
标签: jquery jquery-validate validation onfocus