2016-01-21 182 views
1

我需要驗證具有多個條件的字段和不同的錯誤消息。我怎麼能解決這個問題?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'退出之前的值? –

回答

2

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