我正在尝试以编程方式检查我的表单的有效性,即使我在电子邮件字段中输入无效值,如果我再次点击它而不是它给出错误,下面的代码片段在“#btnSet”按钮上显示为true
$.validator.addMethod(
"regex",
function(value, element, regexp) {
var re = new RegExp(regexp);
return this.optional(element) || re.test(value);
},
"Please check your input."
);
var validator = $("#myForm").validate({
rules:{
cen:"email",
frm:{email:true,required:true},
sub:{required:true, minLength:3,maxLength:50},
fn:{required:true,minLength:3,maxLength:50},
forCols:{regex:"^[1-9]?[1-9](,[1-9]?[1-9])*$"},
ftrCols:{regex:"^[1-9]?[1-9](,[1-9]?[1-9])*$"}
}
});
$("#btnSet").on("click",(function(validator){
return function(){
alert(validator.valid());
if(!validator.valid()){
validator.showErrors();
return;
}
}
}(validator)));
如果我用这个函数替换click事件处理程序
$("#btnSet").on("click",function(){
alert($("#myForm").valid());
if(!$("#myForm").valid()){
return;
}
});
它给出了以下错误
a.validator.methods [d]未定义
答案 0 :(得分:1)
a.validator.methods[d] is undefined
表示您有未定义的方法(规则);换句话说,无效的规则......
sub:{required:true, minLength:3,maxLength:50},
在这种情况下,您的规则拼写不正确。它不是minLength
和maxLength
,而是minlength
和maxlength
......
....
sub: {
required: true,
minlength: 3,
maxlength: 50
},
....