2014-02-25 69 views
8

我试图清除所有的错误信息以及错误时的clear form按钮用户点击,下面是实际需求Jquery验证插件| resetForm不工作

突出
    使用jQuery验证某个字段
  1. 当用户点击
  2. 验证表单错误信息应(每场)
  3. 被清除在点击复位按钮,每一个错误应该被清除

这里是我的代码

$(document).ready(function(){ 
    var validator = $("#register_form").validate({ 
    validator.resetForm(); 
    focusCleanup: true, 
rules: { 
    // custom rules 
}, 
messages: { 
// custom messages 
    } 
    }); 

对于我来说,首先两件事情是工作,但是当我试图清除完整的形式,我不能做this.this是我正在试图清除它

function clearInputForm(){ 
    alert(""); 
    var validator1 = $("#register_form").validate(); 
    validator1.resetForm(); 
    $("#register_form")[0].reset(); 
} 

但没有任何事情发生,虽然$("#register_form")[0].reset();,表单字段变得清晰,但错误消息没有得到清除。

+0

看到http://jsfiddle.net/arunpjohny/eV2Nd/2/ –

+0

@ArunPJohny:谢谢,但对我来说'click'事件没有得到触发,问题似乎与'validator.resetForm();''内部'$(“#register_form”)。validate'这是需要清除每个字段的错误信息 –

+0

所以无论发生在这个?下面的答案由于某种原因不够好? – Sparky

回答

2

$("#register_form")[0].reset();,表单字段越来越清晰,但错误消息没有得到清除。

要做到这一点,你可以把它下面多了一个行:

function clearInputForm(){ 
    alert(""); 
    var validator1 = $("#register_form").validate(); 
    validator1.resetForm(); 
    $("#register_form")[0].reset(); 
    $('.error').hide(); 
} 

虽然你应该做的是这样的:

$(document).ready(function(){ 
    var validator = $("#register_form").validate({ 
     focusCleanup: true, 
     rules: { 
     // custom rules 
     }, 
     messages: { 
     // custom messages 
     } 
    }); 
    $('[type="reset"]').on('click', function(){ 
     validator.resetForm(); 
    }); 
}); 

你应该把你的validator.resetForm();的单击事件的重置按钮。

+0

与此,错误消息不会得到清除 –

+0

张贴一些标记或更好地为它创建一个jsfiddle。 – Jai

7

报价OP:

1)验证形式使用jQuery验证

你不能把validator.resetForm();方法.validate()方法内。

.validate()在这里,可以去里面的唯一的事情是的允许选项,{option:value, option:value, etc.}逗号分隔的地图,按照the .validate() method documentation一个插件的方法。

resetForm() method documentation

$("#register_form").validate({ 
    rules: { 
     firstname: { 
      required: true 
     }, 
     lastname: { 
      required: true 
     }, 
     cell: { 
      required: true 
     } 
    }, 
    messages: { 
     // custom messages 
    } 
}); 

.validate()方法DEMO:http://jsfiddle.net/P46gL/


报价OP:

2)当在现场的错误消息的用户点击应(每场)

被清除这是多亏了focusCleanup选项。正如您已经完成的那样,将其设置为true,并且当您单击带有错误的字段时,错误将清除。

$("#register_form").validate({ 
    focusCleanup: true, 
    rules: { 
     .... 

focusCleanup DEMO:http://jsfiddle.net/P46gL/1/


报价OP:

3)在点击复位按钮,每一个错误应该被清除

您可以从重置按钮的click处理程序中调用resetForm()方法。这将立即删除整个表单中的所有错误消息,并将验证插件重置为其初始状态。

$('#clearform').on('click', function() { 
    $("#register_form").validate().resetForm(); // clear out the validation errors 
}); 

确保复位按钮是type="button"type="reset"或会触发验证。

<input type="reset" id="clearform" value="reset form" /> 

清除错误DEMO:http://jsfiddle.net/P46gL/3/


通过调用JavaScript .reset()这样清理出现场数据

可以清除掉字段的值。

$('#clearform').on('click', function() { 
    var form = $("#register_form"); 
    form.validate().resetForm();  // clear out the validation errors 
    form[0].reset();     // clear out the form data 
}); 

全部工作演示:http://jsfiddle.net/P46gL/4/

+0

拯救生命,清除错误信息之一! –

1

如果实在不行那就试试这个方法(专为清除数据的目的):

1 HTML表单:

<input type='reset' class="button_grey resetForm" value='Reset'> 

2 - jquery验证

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

3-复位形式

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