在编写表单验证的时候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出现了报错:
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;
},"小数点后最多为两位"); //验证错误信息