2016-09-28 3 views
0

Ich habe diesen Schnipsel:jQuery Validate - Dynamische errorLabelContainer

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

Ist es möglich, errorLabelContainer später zu aktualisieren? Zum Beispiel ändern Sie es #error-div-1-#error-div-2 wie im folgenden Beispiel:

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

Antwort

0

Ist es möglich, errorLabelContainer später zu aktualisieren?

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

Kein. Es ist nicht möglich, key:value Paare, die für das Einstellungsobjekt innerhalb der .validate()-Methode innerhalb eines zufälligen Handlers function bedeutet. Es ist auch nicht möglich, .validate() ein zweites Mal aufzurufen, um vorherige Einstellungen zu übersteuern. Sobald .validate() das Plugin auf Ihrem form mit seinen Einstellungen initialisiert, werden alle nachfolgenden Aufrufe dieser Methode ignoriert. Der Entwickler bietet keine Methode zur dynamischen Reinitialisierung des Plugins mit neuen Einstellungen.

Da errorLabelContainer nur zum Einstellen des Behältertypen für die dynamischen Nachrichten gemeint, wie label, div, span, etc, müssen Sie genau Ihren gesamten Ansatz erneut prüfen. Es gibt keinen Grund, eine id da drin zu setzen. Das Plugin errorPlacement wird verwendet, um zu sagen, wo diese Nachricht "generisch" eingefügt werden soll. Standardmäßig werden sie nur nach jedes Eingabeelement eingefügt.

+0

Danke für die Erklärung @Sparky. Gibt es eine Alternative, um das zu erreichen, was ich erreichen möchte: Definieren Sie einen spezifischen 'errorLabelContainer', indem Sie ihn mit 'id' oder 'class' auswählen und später ändern? –

+0

@NaourassDerouichi, es ist völlig unklar, was Sie erreichen wollen, indem Sie dies tun wollen. Allerdings ist das, was Sie fragen, nicht möglich, und wie erläutert, wäre das keine gute Übung. – Sparky