Überschreiben html5-Validierung
Arbeite ich an einem einfachen login-Formular mit zwei Feldern:
<form>
<input type="email" name="email" required />
<input type="password" name="password" required />
<button type="submit">Log in</button>
</form>
Für moderne Browser, die Validierung wird automatisch ausgelöst.
Allerdings, wenn Javascript verfügbar ist, möchte ich über das html5-Formular-Validierung, und verarbeiten alles selbst.
Möchte ich überprüfen automatisch 'onblur' (nur den betroffenen Bereich) und ich möchten, überprüfen Sie alle Felder, wenn "senden" geklickt wird.
Des onblur-events funktionieren, allerdings.. Wenn 'Absenden' gedrückt wird, wird der standard 'submit' - Ereignis wird nicht ausgelöst. Jedoch, eine 'invalid' - Ereignis ausgelöst wird; aber nur für das erste Ereignis invalid.
Was ist ein schöner Weg, um dem browser mitteilen zu ignorieren, HTML5-bezogene Validierung und übernehmen die gesamte Prozess?
- Hey, bitte unaccept meine Antwort akzeptieren und willydee ist, es ist falsch.
- Erledigt, danke
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bitte beachten Sie, dass — obwohl einige Browser unterstützen möglicherweise das Attribut novalidate auf EINGANG Elemente der HTML-code nicht validieren.
Laut Dokumentation gibt es kein solches Attribut. Nur die FORM element enthalten kann, die novalidate Attribut.
novalidate
Attribut ist nur auf unterstütztenform
Elemente, und kann ersetzt werden durch dieformnovalidate
- Attribut submit-buttons und Bilder nur. Die "normalen" Eingänge besitzen kein solches Attribut. In der Tat, ich weiß nicht, ob diese Lösung arbeitete zu der Zeit war die Antwort gepostet, aber es funktioniert nicht wie heute in der neuesten Chrome und Firefox (demo). 1 2Diese Antwort ist falsch. Bitte sehen willydee Antwort.
Einfach, fügen Sie einfach dienovalidate
- Eigenschaft auf ein beliebiges element, die Sie nicht wollen, dass der browser zu überprüfen, etwa so:Denn Sie wollen nur kündigen, Validierung, wenn JavaScript verfügbar ist, fügen Sie es mit JavaScript (mit jQuery für Vereinfachtes Beispiel)
required
Eigenschaftfalse
mit JavaScript.novalidate
- Attribut auf das input-Feld nicht wie heute in der neuesten Chrome oder Firefox. Siehe: stackoverflow.com/questions/9216115/...Weitere option, wenn Sie mit jQuery z.B. ist das Attribut zu entfernen.
Vielleicht können Sie javascript verwenden, um alles umzuwandeln "required" Attribute in "Daten erforderlich" für Sie behandeln können Sie mit javascript zu überschreiben, html5 Formular-Validierung mit eigenen handler
Wenn Sie möchten, bedingte HTML5-Validierung Betrieb.
Meine Bedingung ist, dass ich möchte aufhören, Validierung, wenn der Benutzer speichern möchten, gibt es Daten, aber wenn sein möchten, senden Sie die form, die ich überprüfen möchten.