Wie erstellen Sie eine einfache, benutzerdefinierte Regel mit dem jQuery Validate-Plugin (using addMethod
), das keinen regulären Ausdruck verwendet?
Welche Funktion würde beispielsweise eine Regel erstellen, die nur dann validiert wird, wenn mindestens eines aus einer Gruppe von Kontrollkästchen aktiviert ist?
javascript
jquery
jquery-validate
Edward
quelle
quelle
Antworten:
Sie können eine einfache Regel erstellen, indem Sie Folgendes tun:
Und dann so anwenden:
Ändern Sie einfach den Inhalt der 'addMethod', um Ihre Kontrollkästchen zu überprüfen.
quelle
quelle
remote
wie andere vorgeschlagen haben, aber soweit ich das beurteilen kann, erlaubt dies nur eine Validierung, so dass es nicht funktionieren würde, wenn Sie zwei asynchrone Validierungen benötigen oder je nach Antwort mehrere Fehlermeldungen haben.quelle
Benutzerdefinierte Regel und Datenattribut
Sie können eine benutzerdefinierte Regel erstellen und sie mithilfe des
data
Attributs mithilfe der Syntax an ein Element anhängendata-rule-rulename="true";
So überprüfen Sie, ob mindestens eines aus einer Gruppe von Kontrollkästchen aktiviert ist:
Datenregel-Oneormorechecked
addMethod
Außerdem können Sie die Nachricht einer Regel mithilfe der Syntax überschreiben (dh: Mindestens 1 muss ausgewählt sein)
data-msg-rulename="my new message"
.HINWEIS
Wenn Sie die
data-rule-rulename
Methode verwenden, müssen Sie sicherstellen, dass der Regelname nur in Kleinbuchstaben geschrieben ist. Dies liegt daran, dass die jQuery-ValidierungsfunktiondataRules
für.toLowerCase()
den Vergleich gilt und die HTML5- Spezifikation keine Großbuchstaben zulässt.Arbeitsbeispiel
quelle
Danke, es hat funktioniert!
Hier ist der endgültige Code:
quelle
Sie können eine benutzerdefinierte Regel wie folgt hinzufügen:
Und füge es in der Regel so hinzu:
quelle
Für diesen Fall: Benutzeranmeldeformular, Benutzer muss einen Benutzernamen auswählen, der nicht verwendet wird.
Dies bedeutet, dass wir eine angepasste Validierungsregel erstellen müssen, die eine asynchrone http-Anfrage mit dem Remote-Server sendet.
quelle