Jquery 使用动态错误消息进行验证
Jquery validation with dynamic error message
我需要验证具有多个条件和不同错误消息的字段。我该如何解决这个问题?
$.validator.addMethod("customMethod", function(value, element) {
var msg;
if(cond1){
msg = "msg1";
}
else if(cond2){
msg = "msg2";
}
else if(cond3){
msg = "msg3";
}
}, msg);
你必须在 message
参数中传递一个匿名函数,因为你不能将 msg
从前一个匿名函数的结果传递到下一个参数(因为 msg
,在您的上下文中,仅存在于特定的匿名函数范围内)。
$.validator.addMethod("customMethod", function(value, element) {
// Do your usual stuff here.
}, function (params, element) {
var msg;
if(cond1){
msg = "msg1";
}
else if(cond2){
msg = "msg2";
}
else if(cond3){
msg = "msg3";
}
return msg;
});
但是,您可以像这样在全局范围内声明 msg
:
var msg;
var dynamicErrorMsg = function () { return msg; }
$.validator.addMethod("customMethod", function(value, element) {
if(cond1){
msg = "msg1";
}
else if(cond2){
msg = "msg2";
}
else if(cond3){
msg = "msg3";
}
}, dynamicErrorMsg);
这也行。
我需要验证具有多个条件和不同错误消息的字段。我该如何解决这个问题?
$.validator.addMethod("customMethod", function(value, element) {
var msg;
if(cond1){
msg = "msg1";
}
else if(cond2){
msg = "msg2";
}
else if(cond3){
msg = "msg3";
}
}, msg);
你必须在 message
参数中传递一个匿名函数,因为你不能将 msg
从前一个匿名函数的结果传递到下一个参数(因为 msg
,在您的上下文中,仅存在于特定的匿名函数范围内)。
$.validator.addMethod("customMethod", function(value, element) {
// Do your usual stuff here.
}, function (params, element) {
var msg;
if(cond1){
msg = "msg1";
}
else if(cond2){
msg = "msg2";
}
else if(cond3){
msg = "msg3";
}
return msg;
});
但是,您可以像这样在全局范围内声明 msg
:
var msg;
var dynamicErrorMsg = function () { return msg; }
$.validator.addMethod("customMethod", function(value, element) {
if(cond1){
msg = "msg1";
}
else if(cond2){
msg = "msg2";
}
else if(cond3){
msg = "msg3";
}
}, dynamicErrorMsg);
这也行。