Einführung in die HTML5-Einschränkungsprüfung
Interaktive Websites und Anwendungen sind ohne Formulare, die es uns ermöglichen, nicht vorstellbar Verbinden Sie sich mit unseren Benutzern, und zu erhalte die Daten Wir brauchen, um reibungslose Transaktionen mit ihnen sicherzustellen. Wir brauchen gültige Benutzereingabe, Wir müssen es jedoch so erwerben frustriert nicht unsere Benutzer zu viel.
Während wir die Verwendbarkeit unserer Formulare mit intelligent ausgewählten UX-Entwurfsmustern verbessern können, verfügt HTML5 über einen systemeigenen Mechanismus für die Überprüfung der Nebenbedingungen, der es uns erlaubt Eingabefehler direkt im Frontend abfangen.
In diesem Beitrag konzentrieren wir uns auf Vom Browser bereitgestellte Einschränkungsprüfung, und schauen Sie sich an, wie Frontend-Entwickler dies können Sichere gültige Benutzereingaben mithilfe von HTML5.
Warum wir eine Front-End-Eingabevalidierung benötigen
Eingabeüberprüfung hat zwei Hauptziele. Der Inhalt, den wir erhalten, muss sein:
1. Nützlich
Wir brauchen nutzbare Daten, mit denen wir arbeiten können. Wir müssen Menschen dazu bringen, einzutreten realistische Daten im richtigen Format. Zum Beispiel wurde niemand, der heute lebt, vor 200 Jahren geboren. Das Erhalten solcher Daten mag auf den ersten Blick komisch erscheinen, aber auf lange Sicht ist es ärgerlich und füllt unsere Datenbank mit nutzlosen Daten.
2. Sichern
In Bezug auf Sicherheit bedeutet dies, dass wir dies tun müssen verhindern die Injektion von schädlichen Inhalten - ob absichtlich oder zufällig.
Nützlichkeit (vernünftige Daten erhalten) kann erreicht werden nur auf der clientseite, Das Backend-Team kann dabei nicht viel helfen. Erzielen Sicherheit, Front- und Backend-Entwickler müssen zusammenarbeiten.
Wenn Frontend-Entwickler Eingaben auf der Clientseite ordnungsgemäß überprüfen, können Sie die Das Backend-Team muss sich mit weniger Schwachstellen auseinandersetzen. Hacken (eine Seite) hat oft zur Folge Übermittlung zusätzlicher Daten, oder Daten im falschen Format. Entwickler können Sicherheitslücken wie diese bekämpfen und erfolgreich vom Frontend aus kämpfen.
In diesem PHP-Sicherheitshandbuch wird beispielsweise empfohlen, auf Client-Seite alles zu prüfen, was wir können. Sie betonen die Wichtigkeit der Frontend-Eingabevalidierung, indem sie viele Beispiele geben, wie zum Beispiel:
"Die Eingabeüberprüfung funktioniert am besten mit extrem eingeschränkten Werten, beispielsweise wenn etwas eine Ganzzahl, eine alphanumerische Zeichenfolge oder eine HTTP-URL sein muss."
Bei der Frontend-Eingabeprüfung ist es unsere Aufgabe angemessene Einschränkungen auferlegen bei Benutzereingabe. Die Funktion zur Überprüfung der Einschränkung von HTML5 bietet uns die Mittel dazu.
Überprüfung der HTML5-Einschränkung
Vor HTML5 waren Frontend-Entwickler auf beschränkt Validierung der Benutzereingabe mit JavaScript, Das war ein langwieriger und fehleranfälliger Prozess. Um die clientseitige Formularüberprüfung zu verbessern, wurde in HTML5 ein eingeführt Constraint-Validierung Algorithmus, der in modernen Browsern läuft, und prüft die Gültigkeit der übergebenen Eingabe.
Zur Auswertung verwendet der Algorithmus die Validierungsbezogene Attribute von Eingabeelementen, sowie ,
, und
. Wenn Sie wissen möchten, wie die Überprüfung der Einschränkung Schritt für Schritt im Browser durchgeführt wird, lesen Sie dieses WhatWG-Dokument.
Dank der Funktion zur Überprüfung der Einschränkung von HTML5 können wir alle ausführen Standardeingabevalidierungsaufgaben auf der clientseite ohne JavaScript, ausschließlich mit HTML5.
Um komplexere Aufgaben im Zusammenhang mit der Validierung auszuführen, stellt HTML5 uns ein JavaScript-API für die Überprüfung der Einschränkung Wir können unsere benutzerdefinierten Validierungsskripts einrichten.
Bestätigen Sie mit semantischen Eingabetypen
HTML5 wurde eingeführt semantische Eingabetypen das - abgesehen von der Angabe der Bedeutung des Elements für Benutzeragenten - auch verwendet werden kann Benutzereingabe überprüfen Benutzer auf ein bestimmtes Eingabeformat beschränken.
Neben den bereits vor HTML5 existierenden Eingabetypen (Text
, Passwort
, einreichen
, zurücksetzen
, Radio
, Kontrollkästchen
, Taste
, versteckt
) können wir auch folgendes verwenden semantische HTML5-Eingabetypen: Email
,tel
,url
,Nummer
,Zeit
,Datum
,Terminzeit
,datetime-local
, Monat
,Woche
, Angebot
, Suche
,Farbe
.
Wir können HTML5-Eingabetypen sicher mit älteren Browsern verwenden, da sie sich wie eine Feld in Browsern, die sie nicht unterstützen.
Mal sehen, was passiert, wenn der Benutzer den falschen Eingabetyp eingibt. Angenommen, wir haben ein E-Mail-Eingabefeld mit folgendem Code erstellt:
Wenn der Benutzer eine Zeichenfolge eingibt, die kein E-Mail-Format verwendet, den Algorithmus für die Überprüfung der Nebenbedingungen schickt das Formular nicht ab, und gibt eine Fehlermeldung zurück:
Die gleiche Regel gilt auch für andere Eingabetypen, beispielsweise für Typ = "URL"
Benutzer können nur eine Eingabe übermitteln, die dem URL-Format folgt (beginnt mit einem Protokoll, z. B. http: //
oder ftp: //
).
Einige Eingabetypen verwenden ein Design Benutzer können nicht einmal ein falsches Eingabeformat eingeben, zum Beispiel Farbe
und Angebot
.
Wenn wir das benutzen Farbe
Eingabetyp Der Benutzer muss entweder eine Farbe aus dem Farbwähler auswählen oder die Standardfarbe Schwarz beibehalten. Das Eingabefeld ist vom Design eingeschränkt, Daher bleibt keine große Chance für Benutzerfehler.
Wenn es angebracht ist, lohnt es sich, die HTML-Tag, das ähnlich wie diese eingangsabhängigen Eingabetypen funktioniert; Benutzer können aus einer Dropdown-Liste auswählen.
Verwenden Sie die Validierungsattribute von HTML5
Durch die Verwendung semantischer Eingabetypen werden bestimmte Einschränkungen festgelegt, was Benutzer einreichen dürfen. In vielen Fällen möchten wir jedoch ein wenig weiter gehen. Dies ist, wenn die Validierungsbezogene Attribute des tag kann uns helfen.
Validierungsbezogene Attribute gehören zu bestimmten Eingabetypen (sie können nicht verwendet werden.) alles Typen), für die sie weitere Einschränkungen auferlegen.
1. erforderlich
um auf jeden Fall eine gültige Eingabe zu erhalten
Das erforderlich
Attribut ist das bekannteste HTML-Validierungsattribut. Es ist ein boolesches Attribut was es bedeutet nimmt keinen Wert an, wir müssen es einfach in die tag, wenn wir es verwenden wollen:
Wenn der Benutzer vergisst, einen Wert in ein erforderliches Eingabefeld einzugeben, wird der Browser angezeigt gibt eine Fehlermeldung zurück das warnt sie, das Feld auszufüllen, und sie Das Formular kann nicht gesendet werden bis sie eine gültige Eingabe geliefert haben. Deshalb ist es immer wichtig visuell markieren Pflichtfelder für Benutzer.
Das erforderlich
Attribut kann sein zusammen mit den folgenden Eingabetypen verwendet: Text
, Suche
, url
, tel
, Email
, Passwort
, Datum
, Terminzeit
, datetime-local
, Monat
, Woche
,Zeit
, Nummer
, Kontrollkästchen
, Radio
, Datei
, Plus mit der und
HTML-Tags.
2. Mindest
, max
und Schritt
zur Nummernbestätigung
Das Mindest
, max
und Schritt
Attribute ermöglichen es uns Einschränkungen für Zahleneingabefelder setzen. Sie können zusammen mit der verwendet werden Angebot
, Nummer
, Datum
, Monat
, Woche
, Terminzeit
, datetime-local
, und Zeit
Eingabetypen.
Das Mindest
und max
Attribute bieten eine gute Möglichkeit, um leicht unangemessene Daten ausschließen. Im nachstehenden Beispiel müssen Benutzer beispielsweise ein Alter zwischen 18 und 120 Jahren einreichen.
Wenn der Algorithmus zur Überprüfung der Nebenbedingung auf eine Benutzereingabe stößt, die kleiner ist als die Mindest
, oder größer als der max
Wert verhindert, dass es das Backend erreicht, und gibt eine Fehlermeldung zurück.
Das Schritt
Attribut gibt ein numerisches Intervall an zwischen den zulässigen Werten eines numerischen Eingabefeldes. Wenn wir zum Beispiel möchten, dass Benutzer nur aus Schaltjahren auswählen, können wir das hinzufügen Schritt = "4"
Attribut zu dem Feld. Im folgenden Beispiel habe ich die verwendet Nummer
Eingabetyp, da es keine gibt Typ = "Jahr"
in HTML5.
Mit den voreingestellten Einschränkungen können Benutzer nur zwischen den Schaltjahren zwischen 1972 und 2016 wählen, wenn sie den kleinen Aufwärtspfeil verwenden, der im Lieferumfang enthalten ist Nummer
Eingabetyp. Sie können auch manuell einen Wert in das Eingabefeld eingeben. Falls der Browser die Einschränkungen nicht erfüllt, gibt der Browser eine Fehlermeldung aus.
3. maximale Länge
für die Überprüfung der Textlänge
Das maximale Länge
Attribut macht es möglich Legen Sie eine maximale Zeichenlänge fest für Texteingabefelder. Es kann zusammen mit der verwendet werden Text
, Suche
, url
, tel
, Email
und Passwort
Eingabetypen und mit der HTML-Tag.
Das maximale Länge
Attribut kann eine hervorragende Lösung für Telefonnummernfelder sein, die nicht mehr als eine bestimmte Anzahl von Zeichen enthalten können, oder für Kontaktformulare, bei denen Benutzer nicht möchten, dass sie eine bestimmte Länge eingeben.
Das folgende Codefragment zeigt ein Beispiel für Letzteres. Es beschränkt die Benutzernachrichten auf 500 Zeichen.
Das maximale Länge
Attribut gibt keine Fehlermeldung zurück, Der Browser lässt jedoch nicht zu, dass Benutzer mehr als die angegebene Zeichennummer eingeben. Deshalb ist es wichtig für Benutzer über die Einschränkung informieren, Andernfalls können sie nicht verstehen, warum sie nicht weiter tippen können.
4. Muster
für die Regex-Validierung
Das Muster
Attribut erlauben uns Verwenden Sie reguläre Ausdrücke in unserem Eingabevalidierungsprozess. Ein regulärer Ausdruck ist a vordefinierte Zeichenmenge das bildet ein bestimmtes Muster. Wir können es verwenden, um entweder Zeichenfolgen zu suchen, die dem Muster folgen, oder ein bestimmtes durch das Muster definiertes Format durchzusetzen.
Mit dem Muster
Attribut können wir das letztere tun - Benutzer zwingen, ihre Eingabe in einem Format, das stimmt mit dem angegebenen regulären Ausdruck überein.
Das Muster
Attribut hat viele Anwendungsfälle, es kann jedoch besonders nützlich sein, wenn wir wollen validieren Sie ein Passwortfeld.
Im folgenden Beispiel müssen Benutzer ein Kennwort eingeben, das mindestens 8 Zeichen lang ist und mindestens einen Buchstaben und eine Zahl enthält (Quelle der verwendeten Regex)..
Noch ein paar Dinge
In diesem Artikel haben wir untersucht, wie Sie das nutzen können Vom Browser bereitgestellte Formularüberprüfung wird durch den systemeigenen Algorithmus zur Überprüfung der Integritätsbedingung bereitgestellt. Um unsere benutzerdefinierten Validierungsskripts zu erstellen, müssen Sie die Constraint Validation-API verwenden, die der nächste Schritt bei der Verfeinerung der Formularvalidierungsfähigkeiten sein kann.
HTML5-Formulare sind über assistive Technologien zugänglich, daher müssen wir nicht unbedingt die Arie erforderlich
ARIA-Attribut zur Kennzeichnung der erforderlichen Eingabefelder für Screenreader. Es kann jedoch dennoch nützlich sein, die Unterstützung für die Unterstützung älterer Browser hinzuzufügen. Es ist auch möglich zu Deaktivieren Sie die Constraint-Validierung durch Hinzufügen von Novalidat
boolean Attribut für die Element.