我正在使用我构建的验证器插件,并且每解决一个问题,似乎都会出现一个新问题。目前的问题是,当我使用一个类作为验证选择器时,任何具有该类的类都将被验证,只要其中一个被填充,那么它就会被接受。现在,虽然对于某些情况这可能是可以的,但并非如此。表单验证插件失败,类
小提琴
http://jsfiddle.net/9gwuyras/2/
的验证插件的完整代码可以在小提琴发现为好。代码
部分,我认为这个问题正在引起
用小提琴为代码 Lines 497 - 514
推理它可能并不重要类选择是参考线set.selectors []数组多次,但它是一个可能的选项。
for(var control in controls){
if(typeof controls[control] != 'object'){
console.log("controls."+control+" must be an object. Skipping this element");
continue;
}else if(typeof controls[control].validate == 'undefined'){
console.log("controls."+control+".validate must be defined");
continue;
}
$this.find('input, textarea, select').each(function(){
if($(this).is('#'+control)){
setControlData('#'+control, controls[control]);
settings.selectors.push('#'+control);
}else if($(this).hasClass(control)){
setControlData('.'+control, controls[control]);
settings.selectors.push('.'+control);
}
});
}
Lines: 397 to 401
的理由是,它可能会针对只是类选择的任何形式的团体,而不是重点
var formGroup = null;
if(type != "radio" && type != "checkbox"){
formGroup = $(element).closest('.form-group');
value = $(element).val();
}
这是最我有这么远,我将继续在我完成工作时发布更新。请申请任何其他可能需要的信息。所有帮助非常感谢!
编辑
我忘了最重要的一块的情况。插件是如何调用
$('#test').validator({
controls : {
name : {
validate : "notEmpty"
},
dob : {
validate : ['notEmpty', 'isDateTime'],
dateFormat : 'm/d/Y'
},
gender : {
validate : "notEmpty"
}
},
bindInput : true,
onSubmit : function(){}
});
在controls
对象的键可以是一个ID或类名。