1

という名前のjQueryvalidate()の別のルールを作成しました。キーを押すたびにlogin_authそのルールが呼び出されるのではなく、他のすべてのルールが呼び出されるようにします。これは、 やのような他のすべての組み込みルールは、すべてのキーアップで呼び出す必要がありますが、またはでのみ呼び出す必要があることを意味します。onkeyupemailpasswordlogin_authonfocusoutblur

4

2 に答える 2

4
$.validator.setDefaults({ 
  onkeyup: function(element) { 
      if (element.name == '#emailid') { 
          return false; 
      }
  }
});

フォームで、特定の ID の keyup イベントを停止したい場合は、これを試してください。

于 2014-06-18T11:49:46.670 に答える
3

これは、実際のHTMLとjQueryを投稿するまでの私の最善の答えです。

プラグインオプションを選択的に適用する方法はわかりません。むしろ、プラグインの各インスタンスに適用されます。

したがって、2つのフォームを提案して、の2つの一意のインスタンスを作成し、一方のフォームにオプション.validate()を適用しながら、もう一方のフォームで正常に機能できるようにします。onkeyup: falseonkeyup

HTML:

<form id="authForm" action="#">
    login: <input type="text" name="login" /><br />
</form>

<form id="Form" action="yourAction" method="yourMethod">
    email: <input type="text" name="email" /><br />
    password: <input type="password" name="password" /><br />
    <input type="submit" />
</form>​

jQuery:

$(document).ready(function() {

    $('#authForm').validate({
        onkeyup: false,
        rules: {
            login: {
                login_auth: true,  // your custom rule
                required: true
            }
        }
    });

    $('#Form').validate({
        rules: {
            email: {
                required: true,
                email: true
            },
            password: {
                required: true
            }
        },
        submitHandler: function(form) {
            if ($('#authForm').valid()) {
                form.submit();
            }
        },
        errorPlacement: function(error, element) {
            $('#authForm').valid(); // force validation on first form when this form has error
            error.insertAfter(element); // default error placement
        }
    });

});​

作業デモ:

http://jsfiddle.net/4Hkjk/5/

于 2012-12-10T18:37:14.890 に答える