jQuery验证插件,使用自定义方法单击按钮时验证错误

时间:2013-08-09 09:30:33

标签: jquery methods click jquery-validate

我使用jQuery Validation插件。

在我的情况下按钮点击进行验证(尽管'onkeyup','onfocusout'方法已打开)。我为输入添加了自定义方法/规则。

问题是:

当我点击按钮验证时,只有选择,而不是输入。在这种情况下,新规则被忽略。但是当我在输入中键入文本时,规则正在运行。 如何解决问题?

$(function() {
    // Added new method/rule
    $.validator.addMethod(
        "testm",
        function(value, element) {
            return this.optional(element) || /^[0-9]+$/.test( value );
        },
        "Use a valid username."
    );

    $("#ftest").validate({
        ignore: ".ignore, :hidden",
        focusInvalid: true,
        rules: {
            i1:"required",
            i2: {
                testm: true
            }
        },
        messages: {
            i1: "error1",

        }
    });

    // I need to check whether form is valid when I click the button
    $("#btest").click(function() {
        //alert('asd');
        var valid = $("#ftest").valid();
        if(valid)
        {
            alert('good');
        }
        else {
            alert('bad');
        }
    });
})

http://jsfiddle.net/qwJcf/

1 个答案:

答案 0 :(得分:0)

为了使空输入无法通过验证,您需要从testm验证方法中删除此行:

this.optional(element) ||

http://jsfiddle.net/qwJcf/1/