2016-09-28 83 views
0

我有這樣的片段:jQuery驗證 - 動態errorLabelContainer

$('#my-form').validate({ 
     errorLabelContainer: $('#error-div-1'), 
     submitHandler: function (form) { 
     $(form).ajaxSubmit(formOptions); 
     } 
}); 

是否有可能稍後更新errorLabelContainer?例如,從#error-div-1更改爲#error-div-2如下面的例子:

$("#toggle-container").click(function() { 
    errorLabelContainer: $('#error-div-2'); 
}); 

回答

0

是否有可能稍後更新errorLabelContainer?

$("#toggle-container").click(function() { errorLabelContainer: $('#error-div-2'); });

沒有。不可能將key:value對設置爲.validate()方法中的設置對象,該方法位於隨機處理函數function內。第二次調用.validate()也無法超越以前的設置。一旦.validate()使用其設置初始化您的form上的插件,則忽略此方法的所有後續調用。開發人員不提供使用新設置動態重新初始化插件的方法。

由於errorLabelContainer只是針對設置型容器爲動態消息,比如,labeldivspan,等等,你必須密切重新審視你的整個方法。沒有理由把id放在那裏。插件的errorPlacement用於告訴它在何處「一般」插入此消息。默認情況下,它們在之後的每個輸入元素僅插入

+0

感謝@Sparky的解釋。是否有替代方案來實現我想要實現的目標:通過選擇「id」或「class」來定義特定的'errorLabelContainer',然後再更改它? –

+0

@NaourassDerouichi,完全不清楚你想通過這麼做來達到目的。但是,正是你所問的是不可能的,正如所解釋的那樣,這不是一個好習慣。 – Sparky