タイミング - jquery validator addmethod



jQuery.validate.js onkeyup=trueエラー (4)

@Sparkyが正しいです、正しい答えはonkeyupオプションを削除することonkeyup 、私はonkeyupオプションを削除したonkeyup 、私のフィドルは働いていkeyup

デフォルトでは検証はkeyupイベントで実行されます。この機能を無効にするには、 onkeyup: false設定に追加する必要がありonkeyup: false

更新されたデモを参照してください。

デモ: Fiddle

https://code.i-harness.com

私のjquery検証構成では、onkeyupをtrueに設定すると次のエラーが発生します。 私がfalseに設定すると動作しますが、フィールドをぼかすまで検証のフィードバックを得ることはできません。各キーアップで検証を行うようにしています:

$("#signupForm").validate({
        onkeyup: true,        
        onclick: false
        // rules omitted for brevity
    }

次のエラーが表示されます。

TypeError: validator.settings[eventType].call is not a function
validator.settings[eventType].call(validator, this[0], event);
jquery.validate.js line 391

onkeyupの拡張はどうですか?

    $('#signup-form').validate({

        onkeyup: function(element) {
            var element_id = $(element).attr('id');
            if (this.settings.rules[element_id].onkeyup !== false) {
                $(element).valid();
            }
        },

だからルール内でこれを行うことができます:

        rules: {
            username: {
                required: true,
                minlength: 3,
                maxlength: 25,
                onkeyup: false, /* on blur validation */
            },
            password: {
                required: true,                   
                passwordmeter: true,
                onkeyup: true, /* on keyup validation */
            },

onkeyupを拡張することで、デフォルトの動作にしたので、 onkeyup: trueはオプションです。


ブール値はonkeyupイベントの有効な値ではありません。 代わりに、実行する必要がある機能に関数を追加します。 次のようにしてください:

    onkeyup: function(element) {
           $(element).valid(); 
    }
    onblur: function(element) { 
         $(element).valid(); 
    }

実際にonkeyupオプションを、検証される要素をパラメータとして受け入れる関数に設定する必要があるので、変更を試してください:

onkeyup: true, 

onkeyup: function(element) {$(element).valid()}




jquery-validate