jquery - 验证插件

时间:2011-03-28 19:11:58

标签: javascript jquery jquery-plugins

我制作了一个简单的验证插件,如果输入失败验证则返回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
}

代码将做的是,如果两个输入为空,插件只会告诉名称输入错误,只有在验证了名称输入时,表单才会告诉电子邮件输入错误。虽然,我希望同时看到两个错误。

1 个答案:

答案 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,但是在这个问题上滚动你自己需要很长时间。)