jquery Validierung hinzufügen Eingaben dynamisch erforderlich

8

Ich benutze derzeit die Antwort von der bassistance jquery oder das jqueryvalidation-Plugin (sie wurde umbenannt) und ich validiere ein Formular wie folgt:

%Vor%

Je nach Betrag benötige ich nun ein zusätzliches Feld oder eine Dropdown-Liste und abhängig von dieser Dropdown-Liste eine weitere Texteingabe. so ist es wie:

%Vor%

Ich habe versucht, die CSS-Klasse "erforderlich" wie die anderen Felder hinzufügen, aber ich nehme es, wenn sie nicht innerhalb der Regeln sind, dann funktioniert es nicht? Ich habe versucht, Regeln wie folgt hinzuzufügen:

%Vor%

und das funktioniert auch nicht. irgendwelche Vorschläge?

BEARBEITEN: Hier ist der Link zu der jquery-Validierung, die ich verwende. Wenn ich außerhalb der Regeln verwendete, gibt es diesen Fehler:

%Vor%

in Zeile 124:

%Vor%

und mit den Vorschlägen, die ich an anderen Orten gesehen habe, habe ich das getan, was den Fehler verursacht:

%Vor%

EDIT 2: Hier ist das HTML-Markup, hoffe es hilft.

%Vor%     
Andres 12.10.2013, 22:53
quelle

3 Antworten

5

sah ähnliches Problem damit,

Tatsächlich werden Sie feststellen, dass der Validator in Zeile 124 undefiniert ist, d. h. es ist keine Validator-Instanz mit dem Formular

verknüpft

Wenn Sie die Validierungsmethode überprüfen, sehen Sie, dass wenn ein Validator nicht definiert ist, wird ein neues erstellt

%Vor%

Offenbar geht die Methode rules davon aus, dass der Validator bereits im Formularobjekt vorhanden ist, und da validate eine Validatorinstanz zurückgibt, können Sie validate aufrufen und dann Ihre zusätzlichen Regeln an den zurückgegebenen Validator anhängen settings.rules -Objekt und erneut ausführen, was nicht sehr praktisch ist.

Die andere Lösung wäre, die hinzugefügten Regeln einfach an das anfängliche Regelobjekt anzuhängen, bevor Sie validate

aufrufen

In meinem Fall wollte ich also, dass das Eingabefeld als Nummer validiert wird, aber ich wollte nicht, dass Google Chrome es zu einem Nummernfeld macht (versuche es einfach in Chrome, um zu sehen, was ich meine, dies hatte das Problem, die Validierung der Typennummer zu umgehen, falls der Benutzer manuell eingegeben hat, und in meinem Fall wird der Benutzer höchstwahrscheinlich die Nummer manuell eingeben)

Codebeispiel:

%Vor%

Hoffe, das hilft

    
nsawaya 22.10.2013, 21:08
quelle
10

Ich hatte die gleiche Fehlermeldung erhalten und festgestellt, dass ich das validate() zuerst auf dem Formular aufrufen sollte, bevor ich rules() für einzelne Eingabefelder anrufe. Dieses Verhalten ist dokumentiert .

%Vor%

Dies ist vielleicht nicht die Antwort auf das Problem von OP, aber ich poste dies, um jedem zu helfen, der jquery validation Cannot read property settings of undefined durchsucht und auf diese Seite geklickt hat.

Danke an den Hinweis von @ nsawaya !

    
pikachu0 03.10.2014 06:01
quelle
0

es ist ein Problem beim Abrufen des dynamischen add-Elements mit der ID, so dass es funktioniert, wenn Sie den Attributselektor verwenden, also zum Beispiel das Attribut data="ddlReason" hinzufügen und es so machen:

%Vor%     
George SEDRA 10.10.2014 07:32
quelle

Tags und Links