TypeError: validator.settings[("on" + event.type)].call is not a function

昨天遇到此错误信息,下面是调试后正确的代码:

 1              $("#inputForm").validate({//inputForm是对应的表单的id
 2                 onkeyup:false,
 3                 onfocusout:false,
 4                 focusCleanup:true,
 5                 rules: { 
 6                         "inputName": { //inputName是要验证的输入框的name
 7                             remote:{
 8                                 type:"POST",
 9                                 url: "checkTheInput.action",
10                                 data:{_iataCode:function(){return $("#inputId").val();}}//inputId是要验证的输入框的id
11                             }
12                         }
13                     },
14                     errorPlacement: function(error, element) {  
15                         error.appendTo("#errorDiv");//errorDiv是显示错误信息的div的id
16                     },
17                     messages: {
18                         "inputName": {
19                          remote: "输入的数据不合法!"
20                      }
21                     }
22                 });

如果将"onfocusout:false,"修改为"onfocusout:true,"就会报出上面的错误信息,不过并不影响程序的执行。

上面一段简单的代码已经显示出我们用此段代码的需求(验证表单中的一个输入框中的数据是否合法,用到了jQuery验证中的remote验证),本文主要的目的是为了解释上面的错误因为什么而产生。onfocusout的值默认是true,按理讲写明为true和不写的情况是一直的,不过如果写的话确实会出现上面的错误情况,并且导致“focusCleanup:true,”作用失灵,根本的原因还不晓得需要进一步查证!

1:参考:

http://1.wallwebsite.sinaapp.com/?p=44

2:jQuery验证控件jquery.validate.js使用说明和中文API

http://www.cnblogs.com/hejunrex/archive/2011/11/17/2252193.html

原文地址:https://www.cnblogs.com/godtrue/p/3490970.html