使用jquery方法,为jquery vilidate设置全局出错插入方法/语言/检测方法

来源:互联网 发布:好吃的零食求推荐知乎 编辑:程序博客网 时间:2024/04/30 11:24
使用jquery方法,为jquery vilidate设置全局出错插入方法/语言/检测方法 - qidizi - qidizi 的博客

使用下面自定显示错误方法好处:使用class方式,可以支持多个控件的错误显示同一个span上;如上图

----------------------

 


/**
 *自定默认检测提示语言
 */
jQuery.extend(
    jQuery.validator, {
        messages:{        
            required: "不允许留空",
            remote: "请修改此栏目",
            email: "错误邮件格式",
            url: "错误格式网址",
            date: "错误格式日期",
            dateISO: "错误ISO格式日期",
            number: "必须是数字",
            digits: "必须是整数",
            creditcard: "错误格式信用卡号",
            equalTo: "二次输入不一致",
            accept: "不允许的文件类型",
            maxlength: jQuery.validator.format("字符个数不能超过 {0}"),
            minlength: jQuery.validator.format("字符个数不能少于 {0}"),
            rangelength: jQuery.validator.format("只能输入{0} 和 {1} 之间字符"),
            range: jQuery.validator.format("只能输入 {0} 和 {1} 之间的数字"),
            max: jQuery.validator.format("数字不能大于 {0}"),
            min: jQuery.validator.format("数字必须大于 {0}")
        }
    }   
);

/**
 *自定默认检测提示语言
 */
jQuery.extend(
    jQuery.validator.defaults, {
        errorPlacement:function(error, element) {//自定错误显示对象
            var formId = element[0].form ? element[0].form.id : null;
            
            if (! formId){
                return alert('form对象必须增加ID属性');
            }
            
            var tipClass = element[0].name + 'ERR';
            var tipObj = $('#' + formId + ' .' + tipClass);
            
            if (! tipObj.length){
                return alert('在form找不到出错提示对象: <span class=' + tipClass + '></span>,需要增加');
            }else{
                error.appendTo( tipObj );
            }
        }
    }   
);

/**
 *自定方法,必须放在上面代码后面,否则在调用时不设置messages时会提示:Warning: No message defined for user
 */
jQuery.validator.addMethod("userName", function(value, element) {
  return this.optional(element) || /^\w*$/.test(value);
}, "用户名只允许使用字母和数字");