jQuery Validation插件:如何检查元素是否有效?

时间:2009-01-15 16:46:50

标签: javascript jquery jquery-validate

一点背景:

我正在使用 jQuery Validation插件来验证注册表单。我现在想在系统中实现一个 ajax调用以检查用户名是否可用,并且只有当userName值是根据规则中设置的有效值时才想进行此ajax调用。 $(form).validate();

我想要类似的东西:

$("#userName").keyup(function () {
    if ($("#userName").isValid()) {
        //make ajax called
    }
});

我搜索了文档但我找不到解决问题的方法。

4 个答案:

答案 0 :(得分:31)

$("#userName").keyup(function () {
    if ($("#userName").valid() == true ) {
        //make ajax called
    }
});

http://docs.jquery.com/Plugins/Validation/valid

注意:给那些没有点击链接的人。您必须先致电$("#myform").validate();

答案 1 :(得分:4)

Validator.element()

  

描述:验证单个元素,如果有效则返回true,   否则就是假的。

Docs for .attr()

答案 2 :(得分:0)

这在JQuery 1.11上对我有用

$("#userName").keyup(function () {
    if ($(this)[0].validity.valid) {
        // AJAX here
    }
});

答案 3 :(得分:0)

你好,我找到了排他的解决方案,我和其他47k一样遇到了同样的问题,并且发现了没有其他jquery插件或库的解决方案: -首先,我们需要将输入内容注册到变量中, -然后更改checkValidity()如果​​为true:表示有效,则将已注册的var分配给我们的输入,以使其下一次更改。

        ivar=$('input[name="y-i-name"]')[0];
        $('input[name="y-i-name"]').on('change',function(){
             if($('input[name="y-i-name"]')[0].checkValidity()){


                     // your custom code here!



                     $('input[name="y-i-name"]')[0]=ivar; // & now we rest the input for next change validation
             }
        });