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

时间:2022-12-04 14:34:18

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

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

【积累】在jQuery.Validate额中使用可以传入参数的message【积累】在jQuery.Validate额中使用可以传入参数的message代码
$( ' #submitForm ' ).validate({   
    
/*  设置验证规则  */   
    rules: {   
        username: {   
            required:
true ,
        },   
        phone:{   
            required:
true ,
        } 
    },
    
/*  设置错误信息  */   
    messages: {   
        username: {       
            required: 
" 请输入您的用户名 "   
        },
        phone:{   
            required: 
" 请输入您的联系电话 "
        }
    }  
});   


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

【积累】在jQuery.Validate额中使用可以传入参数的message【积累】在jQuery.Validate额中使用可以传入参数的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位)

 

 

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