Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery验证插件时重置表单_Javascript_Jquery_Validation_Jquery Validate_Reset - Fatal编程技术网

Javascript 使用jquery验证插件时重置表单

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

我有一个简单的表单,如下所示,我将jQuery验证插件添加到了()。我在一个模式弹出窗口中有这个表单,因此如果有错误,并且用户在再次打开它时关闭了窗口,那么表单仍然有错误。在弹出关闭回调中,我尝试调用resetForm(),但它说该方法不存在

表格HTML:

 <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();