Ich möchte die Validierung manuell auslösen, einschließlich der Anzeige von Fehlermeldungen mit jQuery Validate .
Das Szenario, das ich zu erreichen versuche, ist eine Form wie diese:
<form>
<input id=i1> <button id=b1>
<input id=i2> <button id=b2>
</form>
Beim Anklicken b1
, nur i1
sollte validiert werden. Wenn Sie klicken b2
, i2
sollte nur validiert werden. Es müssen jedoch alle Felder gebucht werden. Wie kann ich das machen? Ich dachte darüber nach, das Klickereignis für b1/b2
einen Teil des Formulars zu behandeln und manuell zu validieren.
Antworten:
Diese Bibliothek scheint die Validierung einzelner Elemente zu ermöglichen. Verknüpfen Sie einfach ein Klickereignis mit Ihrer Schaltfläche und versuchen Sie Folgendes:
Beispiele hier:
https://jqueryvalidation.org/Validator.element
quelle
Oder man kann einfach verwenden:
$('#myElem').valid()
Beachten Sie, dass
validate()
das Formular aufgerufen werden muss, bevor es mit dieser Methode überprüft wird.Dokumentationslink: https://jqueryvalidation.org/valid/
quelle
validate()
muss auf dem Formular aufgerufen werden, bevor es mit dieser Methode überprüft wird.Mein Ansatz war wie folgt. Jetzt wollte ich nur, dass mein Formular validiert wird, wenn ein bestimmtes Kontrollkästchen angeklickt / geändert wurde:
quelle
Wie in der Dokumentation beschrieben , können Sie die Formularüberprüfung programmgesteuert auslösen, indem Sie validator.form () aufrufen.
quelle
Ab Version 1.14 gibt es eine undokumentierte Methode
Diese Methode überprüft stillschweigend, ob true / false zurückgegeben wird. Es werden keine Fehlermeldungen ausgelöst.
quelle
Eva M von oben hatte fast die Antwort wie oben (Danke Eva M!):
Dies ist fast die Antwort, aber es verursacht Probleme, selbst im aktuellsten JQuery-Validierungs-Plugin ab dem 13. Dezember 2018. Das Problem ist, dass wenn man dieses Sample direkt kopiert und EVER ".validate ()" mehr als einmal aufruft kann die Fokus- / Schlüsselverarbeitung der Validierung unterbrochen werden und die Validierung zeigt möglicherweise keine Fehler richtig an.
So verwenden Sie die Antwort von Eva M und stellen sicher, dass diese Probleme mit Fokus / Schlüssel / Fehlerverstecken nicht auftreten:
1) Speichern Sie Ihren Validator in einer Variablen / global.
2) Rufen Sie $ ("# myform") NICHT erneut auf. Validate () EVER.
Wenn Sie $ ("# myform"). Validate () mehrmals aufrufen, kann dies zu Problemen beim Verbergen von Fokus / Schlüssel / Fehler führen.
3) Verwenden Sie die Variable / global und das Aufrufformular.
quelle
In meinem ähnlichen Fall hatte ich meine eigene Validierungslogik und wollte nur die jQuery-Validierung verwenden, um die Nachricht anzuzeigen. Das habe ich getan.
quelle
Ich habe versucht, es hat funktioniert tnx @Anastasiosyal Ich möchte es auf diesem Thread teilen.
Ich bin mir nicht sicher, wie die Eingabefelder nicht ausgelöst wurden, als ich die Felder geleert habe. Aber ich habe es geschafft, jedes erforderliche Feld einzeln auszulösen, indem ich:
Hier ist meine Ansicht
und mein Wesen
quelle
Es gibt eine gute Möglichkeit, wenn Sie
validate()
Parameter in einem Formular verwenden und anschließend ein Feld Ihres Formulars manuell validieren möchten:Dokumentation: Validator.element ()
quelle