0

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/

4

1 に答える 1

0

空の入力を検証に失敗させるには、testm 検証メソッドから次の行を削除する必要があります。

this.optional(element) ||

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

于 2013-08-09T09:42:14.903 に答える