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); 
+0

请问您能提供一个jsfiddle吗? –

+0

我无法传递消息,因为它在末尾未定义。 – user2126081

+0

您是否尝试添加断点并检查'if'退出之前的值? –

你将不得不在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