Bootstrap-Formular-input: vermeiden Sie Einreichen, aber für die Eingaben zu prüfen
Habe ich Folgendes problem:
Ich benutze bootstrap-Formular zur Eingabe von Benutzer, und ich verwende jQuery preventDefault() zum deaktivieren der submit-button sendet die form (ich benutze AJAX statt). Jedoch, die Funktion wird auch verhindert, Eingaben zu prüfen, die getan wird durch bootstrap. Zum Beispiel, wenn jemand eine e-mail ohne '@' in
<input type="email" class="form-control">
bootstrap würde, nach Klick auf "senden", überprüfen Sie die Eingaben und kehren Sie ein popup mit einer Fehlermeldung.
Meine Frage ist: wie um zu verhindern, dass die Anfrage gesendet wird, während die bootstrap-Formular-Mechanismus intakt?
Was ich versucht habe: mit preventDefault() und Schreibe meine eigenen Prüfung Skript, aber es scheint wie das Rad neu erfinden und mit extra-code, wenn es nicht benötigt wird.
Danke!
- Sie sind richtig, es wäre neu zu erfinden das Rad ein wenig. Ich würde empfehlen, dass Sie einen Blick auf bootstrapvalidator.com um zu helfen, führen die Validierung. Es scheint, handle es ganz gut...
- Danke! Bootstrap, von sich selbst jedoch, hat bereits ein Mechanismus für einige "einfache" input-Validierung. Also, wenn ich ein jQuery-plugin, ich will nicht das Rad neu erfinden, aber ich würde zusätzlichen code hinzufügen, die vielleicht nicht nötig war. Was ich bin der Hoffnung, um herauszufinden, ist, wenn seine möglich, um zu verhindern, dass der submit-Aktion nur teilweise: lassen Sie input-Prüfung, aber verhindern, dass eine POST-Anforderung gesendet wird, das Formular zu senden.
- Fair genug. Wenn Sie waren zu verwenden, die allerdings, würden Sie nicht wirklich brauchen, um haben, um das überschreiben der submit-button mehr. Jetzt bin ich gerade vom Thema entfernt.
- Mit etwas surfen rund um, es scheint der einzige Weg, um wirklich zu bekommen, was Sie nach ist eine .submit-Methode auf Ihre form, dann tun Sie Ihre Validierung ist, dann legt (kann ich ein code Beispiel, wenn Sie möchten). In Bezug auf bootstrap zu tun es für Sie, das behandelt hat, durch so etwas wie bootstrapvalidator.com oder jqueryvalidation.org... Wenn es etwas anders, ich bin noch zu hören...
- Okay, danke 🙂
- Ich denke, dass eine Geige von deinem code wäre ideal, um Ihnen zu helfen mit diesen schnellen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, Sie reden über die native HTML5 Formular-Validierung und nicht die Validierung von bootstrap selbst habe ich nie über bootstrap-Validierung vor. (ich kann falsch sein, obwohl).
Den meisten neuen Browsern überprüft
<input type='email'/>
als E-Mail-Adresse und die<input type='text' required='required'/>
im erforderlichen Formulars.Wenn du beispielsweise mit
e.preventDefault();
auf das click-event auf den submit-button wird das Formular nie versucht zu Unterwerfen und damit die native Validierung wird nie passieren.Wenn Sie möchten, um die Validierung, die Sie verwenden müssen
e.preventDefault();
auf das submit-Ereignis des Formulars, nicht das click-Ereignis der Schaltfläche.Html...
Den jQuery...
Jedenfalls hoffe, das hilft. Wenn ich falsch verstanden habe, in keiner Weise lassen Sie mich wissen und ill versuchen zu helfen weiter.
Ich hatte das gleiche Problem, ich kam zu verwenden "stopPropagation" als die Art und Weise zu stoppen der übermittlung der form. Aber nach ein wenig Lesen auf jQuery 3, ich erkannte, dass "preventDefault" war genug, um das, was ich wollte.
Dies verursacht die Formular-Validierung zu passieren und die submit-Ereignis nicht gehen.
(In diesem Beispiel ist der Versuch hatte ich auf meinem eigenen).
Ich hatte das gleiche problem und ich finde diese Lösung: