jQuery验证器的addMethod不支持Firefox

时间:2018-02-19 05:44:28

标签: javascript jquery jquery-validation-engine

我已在input类型文字上添加了自定义验证,我正在通过检查事件类型进行自定义验证:

$.validator.addMethod("customVal", function (value, element, options) {
   if (event.type == "blur" || event.type == "focusout" || event.type == 
      "keydown" || event.type == "click") {
       //custom logic
    }
}

此代码适用于Chrome,但在Firefox上我收到错误:

  

事件对象的引用错误。

我尝试在参数列表中添加事件,如下所示:

function(value, element, options, event)

但这没有用。

1 个答案:

答案 0 :(得分:0)

$.validator.addMethod()的方法中没有事件参数。您无法确定哪个事件会在方法本身内调用该方法,因为到那时为时已晚,并且该方法已经被调用。您可以在validate()函数中执行此操作。

假设您的表单为<form id="myForm">,您可以停用onkeyup事件的验证,如下所示:

$("#myForm").validate({
    onkeyup: false,
    //rules: {
    //},
    //messages: {
    //}
});