jquery验证启动

时间:2012-11-23 02:44:11

标签: jquery jquery-validate

这是我所知道的基本功能,但我正在尝试使用表单元素来验证onblur或在输入时。我真的很难让事情正常运转。

$('document').ready(function(){
    $('form').validate({
       rules: {
                a: {
                    onkeyup:true,
                    required:true,
                    minlength:2
                   }
        },      
        messages: {
                a: {
                    required: "enter your name!"
                   }       
        }  

    }); 
 });

我可以让部分工作......但我必须在输入内容后点击进入和退出输入。为什么是这样?然后我添加了这个

    $('#a').blur(function(){
        $("form").validate().element("#a");
    });

它适用于onblur但是当我返回并输入有效条目时,错误消息不会消失。这是html:

<div>
<form action="#">
    <input type="text" name="a" id="a">
</form>
</div>

以下是小提琴:

http://jsfiddle.net/mmw562/S7AKK/16/

http://jsfiddle.net/mmw562/S7AKK/17/

有人可以解释发生了什么吗?我确实感谢你的帮助,尽管我知道这是非常基本的东西......

1 个答案:

答案 0 :(得分:2)

As per documentationonkeyup:.validate()选项,而不是字段验证规则。你必须相应地放置它......

$('document').ready(function(){
    $('form').validate({

    // "onkeyup" is the default behavior, leave it out unless disabling
    // onkeyup: false,  

       rules: {
            a: {
                required:true,
                minlength:2
            }
        },      
        messages: {
            a: {
                required: "enter your name!"
            }       
        }  

    }); 
});

修改

onkeyup:是默认行为,因此只需将其保留为默认行为即可。将其设置为true不仅是多余的,而且实际上会破坏其预期的功能。

如果您需要将其停用,请将其设为false

onkeyup: false

如果您需要更改onkeyup的默认行为,请使用以下函数:

onkeyup: function(element, event) {
   // your custom onkeyup functionality
}

纯粹是供参考,这是默认onkeyup:函数的运作方式:

onkeyup: function(element, event) {
    if ( event.which === 9 && this.elementValue(element) === '' ) {
        return;
    } else if ( element.name in this.submitted || element === this.lastActive ) {
        this.element(element);
    }
}