Auf unserer Website verwenden wir ein eingebettetes Anmeldeformular von unserem ESP, das das jQuery validate plugin verwendet. Wir passen das Formular ein wenig an, fügen ein paar benutzerdefinierte Felder (Vorname, Nachname) hinzu und wir wollen, dass sie gruppiert werden, so dass es nur eine Fehlermeldung für beide Felder gibt.
Da der Validator des Formulars bereits initialisiert wurde, muss ich einige Dinge dynamisch hinzufügen. Das Plugin stellt die Regeln ("add", rules) zur Verfügung, mit denen Validierungsregeln dynamisch hinzugefügt werden können, obwohl wir dafür nur Klassennamen verwenden. Aber es gibt keine klare Möglichkeit, die Option groups zu setzen, nachdem der Validator initialisiert wurde.
Ich habe ein paar verschiedene Dinge ausprobiert, um das zu erreichen, aber keines funktioniert:
%Vor%Die errorPlacement-Funktion wird dem Validierer hinzugefügt, nicht jedoch die Gruppen.
Ich habe auch versucht, die Option groups explizit zu setzen, aber das hat auch keine Wirkung.
%Vor%Ich bin völlig ratlos, wie ich das erreichen soll.
Ich suchte nach einer Möglichkeit, dies auch zu tun und fand eine Lösung im jQuery-Hilfeforum: Ссылка
Ich hatte kürzlich dasselbe Problem und habe eine andere Lösung gefunden.
Wir haben eine Tabelle, die dynamisch wächst, wenn Benutzer Zeilen hinzufügen (oder löschen). Jede neue Zeile enthält mehrere Elemente, und wir möchten, dass sich die Eingabeelemente jeder Zeile in einer einzelnen Validierungsgruppe befinden - eine pro Zeile -, weil wir nur eine Fehlerbeschriftung für jede Zeile haben wollen. Da die Zeilen dynamisch hinzugefügt werden - nachdem wir $ ('# the-form') aufgerufen haben. Validate () - mussten wir jedes Mal, wenn der Benutzer eine Zeile hinzufügt, eine neue Gruppe hinzufügen .
Wir haben das Validator-Objekt gehackt, indem wir sein Gruppenmitglied direkt geändert haben:
%Vor%Diese letzten beiden Zeilen entsprechen
%Vor%in den Validatoroptionen, kann jedoch nach dem ersten Aufruf von validate () hinzugefügt werden.
Es ist ein Hack in die Interna von jquery.validate, aber es funktioniert (mit jquery validate v1.9.0).
Schließlich, um die Frage des OP direkt zu beantworten: Statt dessen:
%Vor%versuche das:
%Vor%Geben Sie ein errorElement: "span" ein, das zur Anzeige des Fehlers an der gewünschten Stelle verwendet wird. wobei benutzername_gruppe innerhalb des span-Tags
codiert wird %Vor% Gruppen: {
Benutzername: "FNAME LNAME"},
errorElement: "span" ,
errorPlacement: Funktion (Fehler, Element) {
if (element.attr ("name") == "FNAME" || element.attr ("name") == "LNAME") {
error.insertAfter ("# Benutzername_Gruppe");
} sonst {
error.insertAfter (Element);
}}}));
Tags und Links javascript jquery jquery-plugins validation jquery-validate