JQuery Validate – 使用函数重置表单,resetForm()将不起作用

我正在使用JQuery Validator,我在stackoverflow中看到了很多解决方案,将所有validation放在“var”中然后使用这个“var”.resetForm()来重置对象,但这不起作用,这是我的JSFiddle用我的榜样。

我的意图是:使用相同的Form,两种类型的块,内部有不同的输入,当其中一个块发生变化时,我调用一个方法来重置validation,这样我可以在尝试提交时再次重用Validate。

var validate = $('#cad_principal').validate({ errorLabelContainer: $('.form_validate_message'), wrapper:'li', rules:{ cad_pf_cpf:{required:true, minlength:11} }, messages:{ cad_pf_cpf:{required:"O campo CPF precisa ser preenchido.", minlength:"O campo CPF deve conter no mínimo 11 caracteres."} }, submitHandler: function(form) { $(form).submit(); } }); function cancelForm(){ validate.resetForm(); } 

您尝试调用的函数( cancelForm() )不存在。 试试这个:

 $(function() { var validate = $('#cad_principal').validate({ errorLabelContainer: $('.form_validate_message'), wrapper:'li', rules:{ cad_pf_cpf:{required:true, minlength:11} }, messages:{ cad_pf_cpf:{required:"O campo CPF precisa ser preenchido.", minlength:"O campo CPF deve conter no mínimo 11 caracteres."} }, submitHandler: function(form) { $(form).submit(); } }); $('#cad_principal a').click(function() { validate.resetForm(); }); }); 

基本上,您需要将代码包装在DOMReady事件中,然后使用事件绑定来挂接表单。 请记住,在DOM准备就绪时, validate将只包含一个变量。 这是一个有效的jsFiddle

  • 如前所述, cancelForm()尚不存在。 将所有内容包装在DOM ready事件处理函数中。

  • 其次,您正在使用jQuery,因此可以使用jQuery的.on()方法将内联JavaScript简单地替换为click处理程序。

  • 最后,您不需要在form.submit() 。 这是多余的,因为通过省略自定义的submitHandler回调,您将通过插件的默认值获得submit()

我还添加了$('form').get(0).reset(); cancel click处理程序以清除表单内容。 根据文档 , resetForm()将需要另一个插件…

重置受控表格。
将输入字段重置为其原始值(需要表单插件) ,删除指示无效元素的类并隐藏错误消息。


试试这个:

jQuery

 $(document).ready(function () { var validate = $('#cad_principal').validate({ errorLabelContainer: $('.form_validate_message'), wrapper: 'li', rules: { cad_pf_cpf: { required: true, minlength: 11 } }, messages: { cad_pf_cpf: { required: "O campo CPF precisa ser preenchido.", minlength: "O campo CPF deve conter no mínimo 11 caracteres." } } }); $('#cancel').on('click', function (e) { e.preventDefault(); validate.resetForm(); $('form').get(0).reset(); }); }); 

HTML

 

cancel

工作演示: http : //jsfiddle.net/rnryw/

如果没有任何作用,那么尝试这种方法(特别是为清除数据目的):

1-表格html:

  

2- Jqueryvalidation

 // you can add error fields var validator = $("#cad_principal").validate({ focusCleanup: true }); 

3-重置表单

 $('[type="reset"]').on('click', function(){ $("#cad_principal").closest('form').find("input[type=text], textarea").val(""); $('input:checkbox').removeAttr('checked'); validator.resetForm(); return false; });