jQuery-Formularvalidierung beim Klicken auf die Schaltfläche
Lesezeit: 4 Minuten
ajithmanmu
Ich habe eine einfache Seite mit einem Formular und einer Schaltfläche außerhalb des Formulars. Ich versuche, das Formular auf dem Button-Klick zu validieren. Ich habe die Regeln für die Validierung des Formulars in der Funktion document.onready hinzugefügt. Das Formular wird jedoch nicht validiert.
$(document).ready(function(){
$("#form1").validate({
rules: {
field1: "required"
},
messages: {
field1: "Please specify your name"
}
})
$('#btn').click(function() {
$("#form1").validate(); // This is not working and is not validating the form
});
});
Irgendeine Idee, was falsch ist?
Erhalten Sie einen JavaScript-Fehler?
– Explosionspillen
2. Dezember 12 um 17:23 Uhr
Welches Plugin verwendest du für die Validierung?
– SwiftD
02.12.12 um 17:26 Uhr
Ich verwende jquery 1.5.2.js und jquery.validate.js
– ajithmanmu
2. Dezember 12 um 17:27 Uhr
An die Kommentatoren: .validate() innerhalb der click Handler funktioniert nicht, weil er nur das Plugin neu initialisiert. Benutzen .valid() Validierung zu erzwingen.
– Funkelnd
02.12.12 um 17:45 Uhr
Funkelnd
In deinem click Handler, der Fehler ist der .validate() Methode; es initialisiert nur das Plugin, es validiert es nicht form.
Um die Notwendigkeit zu beseitigen, a submit Schaltfläche innerhalb der form, benutzen .valid() um eine Validierungsprüfung auszulösen…
.validate() – um das Plugin zu initialisieren (mit Optionen) Einmal auf DOM bereit.
.valid() – Überprüfung des Validierungsstatus (boolescher Wert) oder Auslösen eines Validierungstests auf dem form jederzeit.
Ansonsten, wenn Sie a type="submit" Schaltfläche innerhalb der form Behälter, Sie bräuchten kein spezielles click Handler und die .valid() Methode, da das Plugin das automatisch erfassen würde.
Du brauchst nicht class="required" beim Deklarieren von Regeln innerhalb .validate(). Es ist überflüssig und überflüssig.
Der name Attribut fehlt. Darin werden Regeln deklariert .validate() durch ihre name. Das Plugin hängt von unique ab name Attribute, um die Eingaben zu verfolgen.
Sollte sein…
<input name="field1" id="field1" type="text" />
Ich habe Ihre Antwort bearbeitet, damit sie für eine andere Art von Formularstruktur funktioniert. stackoverflow.com/a/28723145/2615737
– Francisco Corrales Morales
25. Februar 15 um 15:39 Uhr
Ich finde es ironisch, dass Sie sowohl überflüssig als auch überflüssig sagen.
– Louise Eggleton
15. Juni 15 um 9:17 Uhr
Hat wunderbar funktioniert, vielen Dank @Sparky
– Prasad Patel
19. April 17 um 5:44 Uhr
Anstatt class="required"Ich verwende das Attribut <input name="field1" id="field1" type="text" required /> Dadurch wird automatisch das Validierungsskript eingegeben
– ArtFranco
23. Juli 19 um 14:41 Uhr
@ArtFranco, mit diesem Plugin können Sie Regeln nach Klasse oder nach HTML5-Attributen deklarieren. Unabhängig davon müssen Sie den Punkt der Antwort verpasst haben … dass keine Inline-Attribute benötigt werden, wenn die Regeln darin definiert sind .validate().
Sie verwenden auch type=”button”. Und ich bin mir nicht sicher, warum Sie die Schaltfläche “Senden” trennen und in das Formular einfügen sollten. Es ist richtiger, es so zu machen. Das sollte funktionieren.
Wahr. Aber könnte ich wenigstens meine Stimme zurückbekommen? Haha Nur ein trivialer Fehler und ein Versehen meinerseits. ;p …Ich habe nie gesagt, dass es falsch ist, ich habe nur gesagt, dass es so sauberer ist. Allgemein gesagt.
– Wap
02.12.12 um 18:45 Uhr
Warum immer Fehler finden? Ich habe nur versucht zu helfen, indem ich so schnell wie möglich eine funktionierende Alternative angeboten habe, damit er sie nutzen kann, wenn sich herausstellt, dass es das ist, wonach er sucht. Es ist nicht so, als würde ich trollen. Der Austausch von Kommentaren ist ein langer Prozess, wissen Sie. Sieh dir lieber die helle Seite an, Mann.
– Wap
02.12.12 um 19:00 Uhr
Bei SO geht es um qualitativ hochwertige Antworten auf spezifische Fragen … nicht mehr und nicht weniger.
– Funkelnd
2. Dezember 12 um 19:04 Uhr
Sie können dies auch auf andere Weise erreichen Taste Schild
Entsprechend dem neuen HTML5-Attribut können Sie auch ein Formularattribut wie hinzufügen
Erhalten Sie einen JavaScript-Fehler?
– Explosionspillen
2. Dezember 12 um 17:23 Uhr
Welches Plugin verwendest du für die Validierung?
– SwiftD
02.12.12 um 17:26 Uhr
Ich verwende jquery 1.5.2.js und jquery.validate.js
– ajithmanmu
2. Dezember 12 um 17:27 Uhr
An die Kommentatoren:
.validate()
innerhalb derclick
Handler funktioniert nicht, weil er nur das Plugin neu initialisiert. Benutzen.valid()
Validierung zu erzwingen.– Funkelnd
02.12.12 um 17:45 Uhr