Javascript 使用jquery验证插件时重置表单
我有一个简单的表单,如下所示,我将jQuery验证插件添加到了()。我在一个模式弹出窗口中有这个表单,因此如果有错误,并且用户在再次打开它时关闭了窗口,那么表单仍然有错误。在弹出关闭回调中,我尝试调用resetForm(),但它说该方法不存在 表格HTML:Javascript 使用jquery验证插件时重置表单,javascript,jquery,validation,jquery-validate,reset,Javascript,Jquery,Validation,Jquery Validate,Reset,我有一个简单的表单,如下所示,我将jQuery验证插件添加到了()。我在一个模式弹出窗口中有这个表单,因此如果有错误,并且用户在再次打开它时关闭了窗口,那么表单仍然有错误。在弹出关闭回调中,我尝试调用resetForm(),但它说该方法不存在 表格HTML: <form class="validations" id="commentForm" method="get" action=""> <p> <label for="name">Name
<form class="validations" id="commentForm" method="get" action="">
<p>
<label for="name">Name</label>
<em>*</em><input id="name" name="name" size="25" class="required" minlength="2" />
</p>
<p>
<label for="email">E-Mail</label>
<em>*</em><input id="email" name="email" size="25" class="required email" />
</p>
</form>
提前感谢您的帮助。
resetForm
是validate方法返回的对象的一部分,而不是表单。例如:
var validate = $('#commentForm').validate({ ... });
// Later...
validate.resetForm();
// Or if variable scope is in the way...
$('#commentForm').data('validator').resetForm();
验证插件将对验证对象的引用存储在表单的数据存储中。如果它确实是一个只有几个元素的短表单,您可以在单击模式窗口上的关闭按钮时手动重置它们,如下所示:
$(“输入[name='formelementName']”)val(“”)代码>约翰,我不能投你的票,但你的答案是最好的!我按照描述做了,这对我来说很有效。作为注释,我注意到jQuery中有一个“$.validator”,但它没有resetForm()方法。验证不会返回“验证器”。需要证明的是,返回的对象没有“$.validator”所具有的方法。我觉得这有点奇怪,但这可能是在更高级别的jQuery(而不是js)上工作的代价。你说的“变量作用域碍事”是什么意思?你不能去掉变量,只做$('#commentForm').validate().resetForm()
?请注意,如果验证器已经初始化,则.validate()
将只返回.data('validator')
。
var validate = $('#commentForm').validate({ ... });
// Later...
validate.resetForm();
// Or if variable scope is in the way...
$('#commentForm').data('validator').resetForm();