【积累】在jQuery.Validate额中使用可以传入参数的message

这几天在学习使用一个jQuery的验证插件:jQuery.Validate 。这个插件很好用也很灵活,但是对message处理这块刚开始很不适应,因为我们以前做项目时都是使用一个共同的message模板,然后传入参数来达到message复用的目的。

之前在网上的例子中一般都是一个验证对象对应一个message,比如:

代码
$('#submitForm').validate({   
    
/* 设置验证规则 */  
    rules: {   
        username: {   
            required:
true,
        },   
        phone:{   
            required:
true,
        } 
    },
    
/* 设置错误信息 */  
    messages: {   
        username: {       
            required: 
"请输入您的用户名"  
        },
        phone:{   
            required: 
"请输入您的联系电话"
        }
    }  
});   


 对于这种必须输入check的message而言只是控件名称不一样而已,每次都需要重复定义很麻烦。可以简化为:

代码
$('#submitForm').validate({   
    
/* 设置验证规则 */  
    rules: {   
        username: {   
            required:[
true,'用户名']
        },   
        phone:{   
            required:[
true,'联系电话']
        } 
    },
    
/* 设置错误信息 */  
    messages: {   
        required: 
"请输入您的{1}"
    }  
});    


其中 {1} 表示参数数组中的第二个参数(第一个参数是那个true,呵呵), {1} 也可以写成 ${1}

解释一下:

required:[true,'用户名']   // 相当于声明使用required验证规则,并且传入了一个参数数组, 第一个参数是true,第二个参数是'用户名'

messages: {   
        required: "请输入您的{1}"  // 设置了验证失败时显示的Message, {1}代表使用传入的第二个参数显示。
    }

这样只用定义一次message,以后传不同的参数进去就行了。多个参数时也是一样的,定义验证规则的时候给参数数组中添加多项,然后定义message时 通过{N}来指定替换参数列表中的第几个参数。(数组下标从0开始,所以N要比实际顺序小1位)

自己看了插件代码明白可以这样用之后记录下来,希望能帮到跟我有同样问题的朋友。

原文地址:https://www.cnblogs.com/zhualike/p/1736796.html