jQuery Validierungs-Plugin: Wie kann ich die Validierung von zuvor gültigen Feldern erzwingen?

8

Ich verwende das jQuery Validation-Plugin, um ein Formular zu validieren. Wissen Sie, wie Sie die Revalidierung auf zuvor erfolgreichen Feldern erzwingen können?

Ich habe versucht, die .form-Funktion mit der folgenden Überprüfung (das wird ausgeführt, nachdem der Benutzer auf "Senden" klicken):

%Vor%

Es scheint jedoch, dass der obige Code die Validierung nicht wiederholt, so dass Felder, die bereits erfolgreich validiert wurden (dh ein Häkchen neben ihnen haben), nicht erneut überprüft werden.

Der Grund dafür, dass Sie die Revalidierung für zuvor erfolgreiche Felder wiederholen möchten, besteht darin, dass sie sich auf die Remote-Validierung stützen und das Ergebnis (Erfolg oder Fehler) zwischen dem Verlassen des Felds und dem Klicken auf "Senden" geändert werden kann. (Dies gilt für ein Feld "Benutzername".)

Falls es die Antwort beeinflusst, muss ich mehrere Formulare validieren (aus Gründen der Einfachheit beziehe ich mich im obigen Codefragment nur auf '# form1').

Vielen Dank im Voraus für einen Rat,

Rob

    
Rob 26.09.2010, 10:44
quelle

2 Antworten

17

Der Status der Validierung für entfernte Felder wird über $.data() mit dem Element gespeichert, das Sie validieren möchten Sie könnten .removeData() verwenden, um das Problem zu beheben. Daher muss es erneut validiert werden:

%Vor%

Dies zwingt die Überprüfung, ob sich der Wert geändert hat (wir müssen ihn erneut validieren), um true :

zu sein %Vor%

Wenn es nur bestimmte Felder gibt, die erneut validiert werden müssen, wie Sie den Benutzernamen angegeben haben, können Sie den $("#form1 :input") -Wähler auf nur die gewünschten Felder eingrenzen, um die Effizienz zu erhöhen.

    
Nick Craver 26.09.2010 12:09
quelle
0

Ich stieß auf diese Antwort, als ich mit der jQuery-Remote-unauffälligen Validierung arbeitete. Es war nicht das am besten dokumentierte Thema der Welt und auch nicht ohne Macken. So sehr, dass ich am Ende einen Blogbeitrag über das, was ich gelernt habe, geschrieben habe. Link hier, falls hilfreich:

Ссылка

    
John Reilly 04.03.2012 06:59
quelle