jquery在提交之前验证所有字段

时间:2012-11-25 01:04:10

标签: jquery jquery-validate

我尝试确保在提交表单之前验证所有字段。我甚至不知道从哪里开始。我希望将提交按钮显示为灰色或仅禁用,直到成功验证所有字段。

这是脚本:

$('document').ready(function(){
$('form').validate({
    rules: {
       a: {required:true, minlength:2},
       b: {required:true}
    },      
    messages: {
       a: {required: "enter your name!"},
       b: {required: "enter the date!"}                        
    },
    errorPlacement: function(error, element) {
    if(element.attr('name') == 'a'){
         $('#name').html(error);                
     }
     if(element.attr('name') == 'b'){
         $('#date').html(error);                
     }
    },
    success: function(label){
        label.addClass("valid").text("Ok!");                  
    },
    debug:true
});
$('#a').blur(function(){
    $("form").validate().element("#a");
});
});

这是html:

<form action="#" id='commentForm'>
    <input type="text" name="a" id="a">
    <input type="text" name="b" id="b">
    <button type="submit">Validate!</button>
<div id="date" style="border:1px solid blue;"></div>
<div id="name" style="border:1px solid red;"></div>
</form>

这是jsfiddle:

http://jsfiddle.net/wQxQ8/12/

提前感谢!

1 个答案:

答案 0 :(得分:1)

不论是否多余(我个人喜欢它,因为它的清晰度是这两倍)

  • 默认情况下禁用该按钮
  • 在每个输入模糊上,检查表单是否有效。
  • 如果是,请启用该按钮。

    $('input').blur(function(){
        var thisform = $('form');
        if (thisform.valid()) {
            thisform.find("button").prop("disabled", false)
        }
     });
    

小提琴:http://jsfiddle.net/wQxQ8/17/

您还可以将模糊更改为onkeyup,以便在每次击键后进行验证。如果您有大量输入要验证,它可能会有性能影响。