Uncaught TypeError: Cannot read property 'call' of undefined 墨蓝 2022-05-16 01:50 174阅读 0赞 在编写表单验证的时候validate()出现了错误,当我添加rules的时候,出现报错。关键代码如下所示 $("#inputForm").validate({ rules : { excavateDiameter : { required: true, //要求输入不能为空 number: true, //输入必须是数字 min : 0, maxlength:10, minNumber: $("#excavateDiameter").val() //调用自定义验证 } }, messages : { excavateDiameter : { required : "开挖直径不能为空", number : "开挖直径的内容必须为数字", min : "开挖直径不能为负数", minNumber : "开挖直径小数位最多2位,整数位最多7位" } }, //表单全部校验通过之后进行的动作 submitHandler: function(form){ 对于表单中excavateDiameter 的是否填写,是否为数值,最小值与最大值进行检测,并弹出相应的消息。 之后,js出现了报错: ![70][] stackOverFlow给出的解决方案中写到,可能是有的js包没有导入,我导入之后也没反应。 我的这个代码的问题所在,是因为没有定义函数minNumber,出现的报错。这个validate检测我是套用前辈写好的框架,没有加上minNumber函数,才导致的问题出现。之后在validate上面加上minNumber函数,就能够成功运行。 //自定义校验,用来验证整数位个数和小数位个数 jQuery.validator.addMethod("minNumber",function(value, element){ var returnVal = true; inputZ=value; var ArrMen= inputZ.split("."); //截取字符串 if(ArrMen.length==1){ if(inputZ.length>7){//判断整数位的长度 returnVal = false; return false; } } if(ArrMen.length==2){ if(ArrMen[1].length>2){ //判断小数点后面的字符串长度 returnVal = false; return false; } if(ArrMen[0].length>7){ //判断小数点前面的字符串长度 returnVal = false; return false; } } return returnVal; },"小数点后最多为两位"); //验证错误信息 [70]: /images/20220516/adbf059520414827895df420932e08a7.png
还没有评论,来说两句吧...