Jquery动态错误消息验证
问题描述:
我需要验证具有多个条件的字段和不同的错误消息。我怎么能解决这个问题?Jquery动态错误消息验证
$.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);
,这将正常工作。
+0
谢谢,它的作品就像一个魅力。 – user2126081
请问您能提供一个jsfiddle吗? –
我无法传递消息,因为它在末尾未定义。 – user2126081
您是否尝试添加断点并检查'if'退出之前的值? –