如何使jQuery Validate()规则为onkeyup false?

时间:2012-11-02 12:10:59

标签: jquery jquery-validate

我已经为名为validate() jQuery login_auth 编写了单独规则,我希望该规则在每次按键时都不会被调用但是我希望将所有其他规则称为onkeyup 。这意味着应该在每个密钥上调用所有其他内置的规则,例如emailpassword,但只应在login_auth上调用onfocusoutblur {{1}}。

2 个答案:

答案 0 :(得分:4)

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

在表单中,如果要停止特定ID的keyup事件,请尝试此操作。

答案 1 :(得分: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
        }
    });

});​

Working Demo:

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