Ich verwende das jQuery Validate-Plugin und finde nie eine gute Möglichkeit, Fehler für Checkboxen anzuzeigen. Ich möchte alle Kontrollkästchen-Beschriftungen in rot hervorheben, wenn keine ausgewählt sind, und entscheide mich, dies zu tun, indem ich eine Fehlerklasse zum div hinzufüge, das die Ankreuzfelder und Markierungsfelder enthält. Es scheint jedoch nicht die Klasse hinzuzufügen. Wähle ich das div nicht richtig aus?
HTML:
%Vor%Javascript:
%Vor%CSS:
%Vor%Aus meiner Antwort zu fügen Sie eine Klasse zum übergeordneten div hinzu, wenn der Validierungsfehler bei der jquery-Validierung auftritt , weil ich glaube, dass dies einen Mehrwert darstellt die vorhandenen Antworten zu dieser Frage ...
Die erste Aufgabe besteht darin, das Objekt settings
auf dem Validator Ihres Formulars zu ändern. Sie können dies auf eine der folgenden Arten tun:
jQuery.validator.setDefaults()
auf
.validate([options])
$("form").data("validator").settings
Da Sie MVC verwenden, kommt Option # 2 nicht in Frage, da die unauffällige Validierung automatisch erfolgt initialisiere das Formular. Lassen Sie uns also Option 3 für die Zukunft verwenden - das Ziel besteht darin, nur die Einstellungen im Formular anzupassen.
Die Standardmethoden, die wir ändern möchten, sind highlight
und unhighlight
, die ungültige Felder hervorheben oder die von der Highlight-Option vorgenommenen Änderungen rückgängig machen. Hier ist ihr Standardverhalten entsprechend dem Quellcode :
Sie haben also auch hier ein paar Optionen.
Diese Route ist ziemlich einfach. Schreib einfach was du willst. Vielleicht Samen aus dem Quellcode, vielleicht machen Sie Ihr eigenes Ding.
%Vor%Dies ist weniger aufdringlich, also wahrscheinlich in den meisten Fällen vorzuziehen.
Da Sie letztendlich den Wert von valSettings.highlight
ersetzen werden, benötigen Sie Zugriff auf eine saubere ursprüngliche Version der ursprünglichen Funktion. Sie können Ihre eigenen speichern oder einen der globalen Standardwerte herunterladen
Im Hinblick auf das Umschließen von JavaScript-Funktionen gibt es einige Beispiele hier , hier und hier ). Hier ist ein analysiertes Beispiel aus einem dieser Beispiele, das dabei hilft, den this
-Kontext über Funktionsaufrufe zu binden, die Artigkeit der übergebenen Argumente beizubehalten und den Rückgabewert beizubehalten:
Dann müssen Sie auch schnell definieren, welches zusätzliche Verhalten Sie bei jedem Anruf auslösen möchten. In diesem Fall suchen wir nach dem nächsten Elternteil div
und aktualisieren seine Klassen wie folgt:
Alles einpacken (siehe was ich dort gemacht habe)
%Vor%Wenn wir also alle oben genannten Funktionen kombinieren, sollte es etwa so aussehen:
Tags und Links javascript jquery css jquery-validate