1

我为名为 as的jQuery编写了单独的规则,我希望validate()在每次按键时都不会调用login_auth该规则,但我希望调用所有其他规则。这意味着所有其他内置规则,例如and应该在每个键上调用,但只能在or上调用。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 之前,这是我最好的答案。

我不知道有选择地应用任何插件选项....而是将它们应用于插件的每个实例。

因此,我提出了两种形式,这样您就可以拥有 的两个唯一实例.validate(),并在一个形式上应用该onkeyup: false选项,同时允许onkeyup在另一种形式上正常运行。

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 回答