我制作了一个简单的验证插件,如果输入失败验证则返回false,问题是这个插件一次只能处理一个输入。我希望它能同时处理所有输入。
代码
$.fn.validate = function(options){
var defaults = {
required:true,
minChar:0,
maxChar:0
},
o = $.extend({},defaults, options);
this.each(function(){
var $this=$(this);
var val = $this.val();
if(o.required==true && val==''){
return false;
}else if(o.minChar>0 && val.length < o.minChar ){
return false;
}else if(o.maxChar>0 && val.length >o.maxChar ){
return false;
}
else{return true;}
});
}
呼叫
if(!$('#name').validate()){
$('.name_inline_error').text('require name');
return false;// return false to stop ajax form submiting
}
if(!$('#email').validate()){
$('.email_inline_error').text('require email');
return false;// return false to stop ajax form submiting
}
代码将做的是,如果两个输入为空,插件只会告诉名称输入错误,只有在验证了名称输入时,表单才会告诉电子邮件输入错误。虽然,我希望同时看到两个错误。
答案 0 :(得分:1)
当您返回时,您正在跳过其余功能。尝试这样的事情:
valid = true;
if(!$('#name').validate()){
$('.name_inline_error').text('require name');
valid = false;
}
if(!$('#email').validate()){
$('.email_inline_error').text('require email');
valid = false;
}
return valid;
(Matt Ball的评论+ 1,但是在这个问题上滚动你自己需要很长时间。)