HTML5 -Formulare: JavaScript und die API zur Beschränkungsvalidierung
Kernpunkte
- HTML5 ermöglicht die Verifizierung von Client -Formulare frei von JavaScript -Codierung, aber für komplexere Formen können JavaScript- und Einschränkungsüberprüfungs -APIs zur Verbesserung der nativen Validierung verwendet werden. Dies liegt an einigen Einschränkungen, wie nicht alle Browser, die alle HTML5 -Eingangstypen und CSS -Selektoren unterstützen, und es ist schwierig, die Fehlermeldungblase zu stylen. Die API
- Einschränkungsprüfung liefert einige Methoden und Eigenschaften wie
.willValidate
,.checkValidity()
,.validity
und.setCustomValidity()
. Diese werden verwendet, um zu überprüfen, ob die Felder überprüft werden, die Felder verifiziert werden, die Gültigkeit der Felder und die benutzerdefinierte Gültigkeitsnachricht festgelegt werden. Allerdings werden nicht alle Attribute von allen Browsern unterstützt. - Ein einfaches, universelles Cross-Browser-Form-Verifizierungssystem kann mit JavaScript- und Beschränkungsverifizierungs-APIs erstellt werden. Dieses System beinhaltet die Deaktivierung der nativen Überprüfung, das Durchleiten aller Felder, um zu überprüfen, ob die native Überprüfung verfügbar ist und ob der Eingangstyp unterstützt wird, die Gültigkeit des Feldes überprüft und eine benutzerdefinierte Gültigkeitsmeldung festgelegt wird. Dieses System kann angepasst werden, um ältere Browser und verschiedene Eingangstypen zu unterstützen.
Dieser Artikel ist der letzte in einer dreiteiligen Serie über HTML5-Webformulare, und wir werden die API von JavaScript Integration und Beschränkungsüberprüfung diskutieren. Wenn Sie die Artikel mit Tagged und CSS nicht gelesen haben, lesen Sie es zuerst, um sicherzustellen, dass Sie mit diesen Konzepten vertraut sind. Mit HTML5 können wir die Validierung des Client -Formulars ohne JavaScript -Code implementieren. Bei der Implementierung komplexerer Formen müssen wir jedoch die native Validierung verbessern, da:
- Nicht alle Browser unterstützen alle HTML5 -Eingangstypen und CSS -Selektoren Fehlermeldung Blasen verwenden gemeinsamen Text ("Bitte füllen Sie dieses Feld aus") und sind schwer zu stylen
- und
- Stile werden angewendet, wenn die Seite geladen wird, bevor der Benutzer mit dem Formular interagiert.
:invalid
:required
Einige APIs von JavaScript -Code und Einschränkungen können die Benutzererfahrung verbessern. Beachten Sie, dass dies ein wenig unordentlich werden kann, wenn Sie eine Vielzahl von Browsern und Eingabetypen unterstützen möchten, und wir werden hart daran arbeiten.
Abfangform -Einreichung
Vor dem HTML5 wird die Client -Überprüfung ein Einreichungshandler an ein Formular anhängen, das das Feld überprüft, einen Fehler an zeigt und Einreichungsereignisse blockiert. In HTML5 führt der Browser zunächst eine eigene Überprüfung durch - das Einreichungsereignis wird nur dann ausgelöst, wenn das Formular gültig ist. Wenn Sie also etwas Kompliziertes tun möchten, z. B. das Anzeigen Ihres eigenen Fehlers, des Vergleichs oder des automatischen Füllens, müssen Sie die native Überprüfung ausschalten, indem Sie die
-Sache des Formulars auf: noValidate
festlegen
true
var form = document.getElementById("myform"); form.noValidate = true; // 设置处理程序以在提交时验证表单 // onsubmit 用于更轻松的跨浏览器兼容性 form.onsubmit = validateForm;
Feld
Eigenschaften Jedes Eingabefeld hat ein -Handler, der alle Felder durchläuft und prüft, ob eine native Überprüfung verfügbar ist:
überprüfen können! Wir wissen nun, dass der Code im ersten Codeblock bewertet wird, wenn er mit nationaler Validierung verwendet werden kann. Aber ...
Wenn Sie den ersten Teil lesen, werden Sie sich daran erinnern, dass die Eingabetypen, die nicht unterstützt werden, auf den Text zurückfallen. Zum Beispiel:
Keine native Unterstützung in Firefox 29 oder IE11. Diese Browser werden (effektiv): Beide Browser unterstützen jedoch die Überprüfung des Texttyps, daher wird -attribute mit den
zurück. Es gibt auch eine ähnliche Objekte haben die folgenden Eigenschaften: Nicht alle Eigenschaften werden von allen Browsern unterstützt. Achten Sie also darauf, nicht zu viele Annahmen zu treffen. In den meisten Fällen sollte das Ergebnis von (Der nachfolgende Inhalt entspricht dem Originaltext, und die Länge ist zu lang, sodass er hier weggelassen wird. Bitte passen Sie die Länge und die Details des Ausgangsinhalts selbst nach Bedarf an.) Das obige ist der detaillierte Inhalt vonHTML5 -Formulare: JavaScript und die API zur Beschränkungsvalidierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!.willValidate
.willValidate
Attribut. Dies wird zurückkehren:
zurückgegeben. Erstellen wir unseren true
: Wenn der Browser das native Verifizierungsfeld platziert;
false
undefined
false
validateForm
Die Loop -Iteraten stellen alle Felder in einer einzelnen var form = document.getElementById("myform");
form.noValidate = true;
// 设置处理程序以在提交时验证表单
// onsubmit 用于更轻松的跨浏览器兼容性
form.onsubmit = validateForm;
elements
function validateForm(event) {
// 获取跨浏览器事件对象和表单节点
event = (event ? event : window.event);
var
form = (event.target ? event.target : event.srcElement),
f, field, formvalid = true;
// 循环所有字段
for (f = 0; f < form.elements.length; f++) {
// 获取字段
field = form.elements[f];
// 忽略按钮、字段集等
if (field.nodeName !== "INPUT" && field.nodeName !== "TEXTAREA" && field.nodeName !== "SELECT") continue;
// 原生浏览器验证可用吗?
if (typeof field.willValidate !== "undefined") {
// 原生验证可用
}
else {
// 原生验证不可用
}
}
}
false
undefined
field.willValidate
unterstützt der Browser Eingangstypen? // 原生浏览器验证可用吗?
if (typeof field.willValidate !== "undefined") {
// 原生验证可用
}
else {
// 原生验证不可用
}
<input type="date" name="dob" />
field.willValidate
-attributen des Objekts übereinstimmen - wenn sie nicht übereinstimmen, müssen wir die Legacy -Fallback -Überprüfung implementieren, z. B. undefined
type
.type
<input type="text" name="dob" />
.checkValidity()
Wenn eine native Überprüfung verfügbar ist, können Sie die Methode ausführen, um das Feld zu überprüfen. Wenn es kein Problem gibt, gibt die Methode .checkValidity()
-Methode, die den aktuellen Zustand ohne Wiederholung zurückgibt, obwohl dies nicht sehr nützlich ist und von allen Browsern nicht unterstützt wird. Diese beiden Methoden werden auch: true
sein
false
.reportValidity()
Das Feld Wenn die Überprüfung fehlschlägt, wird das Ereignis
.validity
-Ereignis gibt. Denken Sie daher daran, den Fehlerstil und die Meldung bei Bedarf zurückzusetzen. invalid
valid
field .validity
.valid
- Gibt true
zurück, wenn es keinen Fehler im Feld gibt, andernfalls gibt false
zurück.
.valueMissing
- Gibt true
zurück, wenn das Feld erforderlich ist, aber kein Wert eingegeben wird.
.typeMismatch
- Gibt true
zurück, wenn der Wert nicht die richtige Syntax ist (z. B. eine missgebildete E -Mail -Adresse).
.patternMismatch
- Gibt pattern
zurück, wenn der Wert nicht mit dem regulären Ausdruck des true
-attributs übereinstimmt.
.tooLong
- Gibt maxlength
zurück, wenn der Wert länger als der zulässige true
ist.
.tooShort
- Gibt minlength
zurück, wenn der Wert kürzer ist als der zulässige true
.
.rangeUnderflow
- Wenn der Wert niedriger als min
ist, return true
.
.rangeOverflow
- Wenn der Wert höher als max
ist, return true
.
.stepMismatch
- Wenn der Wert nicht mit step
übereinstimmt, return true
.
.badInput
- Wenn der Eintrag nicht in einen Wert konvertiert werden kann, gibt er true
zurück.
.customError
- Gibt true
zurück, wenn ein benutzerdefinierter Fehler im Feld festgelegt ist. .valid
oder .checkValidity()
ausreichen, um die Fehlermeldung anzuzeigen oder auszublenden.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Python eignet sich besser für Anfänger mit einer reibungslosen Lernkurve und einer kurzen Syntax. JavaScript ist für die Front-End-Entwicklung mit einer steilen Lernkurve und einer flexiblen Syntax geeignet. 1. Python-Syntax ist intuitiv und für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet. 2. JavaScript ist flexibel und in Front-End- und serverseitiger Programmierung weit verbreitet.

Zu den Hauptanwendungen von JavaScript in der Webentwicklung gehören die Interaktion der Clients, die Formüberprüfung und die asynchrone Kommunikation. 1) Dynamisches Inhaltsaktualisierung und Benutzerinteraktion durch DOM -Operationen; 2) Die Kundenüberprüfung erfolgt vor dem Einreichung von Daten, um die Benutzererfahrung zu verbessern. 3) Die Aktualisierung der Kommunikation mit dem Server wird durch AJAX -Technologie erreicht.

Die Anwendung von JavaScript in der realen Welt umfasst Front-End- und Back-End-Entwicklung. 1) Zeigen Sie Front-End-Anwendungen an, indem Sie eine TODO-Listanwendung erstellen, die DOM-Operationen und Ereignisverarbeitung umfasst. 2) Erstellen Sie RESTFUFFUPI über Node.js und express, um Back-End-Anwendungen zu demonstrieren.

Es ist für Entwickler wichtig, zu verstehen, wie die JavaScript -Engine intern funktioniert, da sie effizientere Code schreibt und Leistungs Engpässe und Optimierungsstrategien verstehen kann. 1) Der Workflow der Engine umfasst drei Phasen: Parsen, Kompilieren und Ausführung; 2) Während des Ausführungsprozesses führt die Engine dynamische Optimierung durch, wie z. B. Inline -Cache und versteckte Klassen. 3) Zu Best Practices gehören die Vermeidung globaler Variablen, die Optimierung von Schleifen, die Verwendung von const und lass und die Vermeidung übermäßiger Verwendung von Schließungen.

Python und JavaScript haben ihre eigenen Vor- und Nachteile in Bezug auf Gemeinschaft, Bibliotheken und Ressourcen. 1) Die Python-Community ist freundlich und für Anfänger geeignet, aber die Front-End-Entwicklungsressourcen sind nicht so reich wie JavaScript. 2) Python ist leistungsstark in Bibliotheken für Datenwissenschaft und maschinelles Lernen, während JavaScript in Bibliotheken und Front-End-Entwicklungsbibliotheken und Frameworks besser ist. 3) Beide haben reichhaltige Lernressourcen, aber Python eignet sich zum Beginn der offiziellen Dokumente, während JavaScript mit Mdnwebdocs besser ist. Die Wahl sollte auf Projektbedürfnissen und persönlichen Interessen beruhen.

Sowohl Python als auch JavaScripts Entscheidungen in Entwicklungsumgebungen sind wichtig. 1) Die Entwicklungsumgebung von Python umfasst Pycharm, Jupyternotebook und Anaconda, die für Datenwissenschaft und schnelles Prototyping geeignet sind. 2) Die Entwicklungsumgebung von JavaScript umfasst Node.JS, VSCODE und WebPack, die für die Entwicklung von Front-End- und Back-End-Entwicklung geeignet sind. Durch die Auswahl der richtigen Tools nach den Projektbedürfnissen kann die Entwicklung der Entwicklung und die Erfolgsquote der Projekte verbessert werden.

C und C spielen eine wichtige Rolle in der JavaScript -Engine, die hauptsächlich zur Implementierung von Dolmetschern und JIT -Compilern verwendet wird. 1) C wird verwendet, um JavaScript -Quellcode zu analysieren und einen abstrakten Syntaxbaum zu generieren. 2) C ist für die Generierung und Ausführung von Bytecode verantwortlich. 3) C implementiert den JIT-Compiler, optimiert und kompiliert Hot-Spot-Code zur Laufzeit und verbessert die Ausführungseffizienz von JavaScript erheblich.

JavaScript wird in Websites, mobilen Anwendungen, Desktop-Anwendungen und serverseitigen Programmierungen häufig verwendet. 1) In der Website -Entwicklung betreibt JavaScript DOM zusammen mit HTML und CSS, um dynamische Effekte zu erzielen und Frameworks wie JQuery und React zu unterstützen. 2) Durch reaktnatives und ionisches JavaScript wird ein plattformübergreifendes mobile Anwendungen entwickelt. 3) Mit dem Elektronenframework können JavaScript Desktop -Anwendungen erstellen. 4) Node.js ermöglicht es JavaScript, auf der Serverseite auszuführen und unterstützt hohe gleichzeitige Anforderungen.
