Introducere în Validarea constrângerilor HTML5
Site-urile interactive și aplicațiile nu pot fi imaginate fără forme care să ne permită conectați-vă cu utilizatorii noștri, și a obțineți datele avem nevoie pentru a asigura tranzacții fără probleme cu ei. Avem nevoie intrare validă a utilizatorului, cu toate acestea, trebuie să o achiziționăm într-un mod care să fie nu frustrează utilizatorii noștri prea mult.
În timp ce putem îmbunătăți gradul de utilizare a formularelor noastre cu modele inteligente de design UX, HTML5 are și un mecanism nativ pentru validarea constrângerilor care ne permit prinde erori de intrare chiar în front-end.
În acest post, ne vom concentra pe browser-ul de validare a constrângerilor, și analizați modul în care dezvoltatorii de frontend pot securizați intrarea validă a utilizatorului folosind HTML5.
De ce avem nevoie de validare de intrare front-end
Validarea intrărilor are două obiective principale. Conținutul pe care îl primim trebuie să fie:
1. Utile
Avem nevoie date utile cu care putem lucra. Trebuie să-i facem pe oameni să intre date realiste în formatul corect. De exemplu, nimeni care trăiește astăzi nu sa născut acum 200 de ani. Obținerea de date ca aceasta poate părea amuzantă la început, dar pe termen lung este enervantă și popula populația noastră cu date inutile.
2. Secure
Când ne referim la securitate, asta înseamnă că trebuie să facem asta preveni injectarea de conținut rău intenționat - fie deliberat, fie accidental.
Utilitatea (obținerea de date rezonabile) poate fi realizată numai pe partea clientului, echipa de backend nu poate ajuta prea mult cu asta. Pentru a atinge Securitate, dezvoltatorii din front și backend trebuie să lucreze împreună.
Dacă dezvoltatorii de frontend validează corect intrarea pe partea clientului, echipa de backend va trebui să se ocupe cu mult mai puține vulnerabilități. Hacking (un site) implică adesea trimiterea de date suplimentare, sau date în format greșit. Dezvoltatorii pot lupta împotriva găurilor de securitate ca acestea, luptând cu succes de la front-end.
De exemplu, acest ghid de securitate PHP recomandă să verificați tot ce putem din partea clientului. Acestea subliniază importanța validării intrărilor de frontend, oferind numeroase exemple, cum ar fi:
"Validarea intrărilor funcționează cel mai bine cu valori extrem de restricționate, de exemplu atunci când ceva trebuie să fie un număr întreg, un șir alfanumeric sau o adresă HTTP."
În validarea intrărilor frontend, treaba noastră este să să impună constrângeri rezonabile la intrarea utilizatorului. Funcția de validare a constrângerilor HTML5 ne oferă mijloacele necesare pentru a face acest lucru.
Validarea constrângerilor HTML5
Înainte de HTML5, dezvoltatorii frontend au fost limitați la validarea intrării de utilizator cu JavaScript, care a fost un proces obositor și eronat. Pentru a îmbunătăți validarea formularului de la client, HTML5 a introdus o constrângere de validare algoritmul care rulează în browserele moderne și verifică validitatea intrării trimise.
Pentru a face evaluarea, algoritmul utilizează validarea atributelor elementelor de intrare, precum ,
, și
. Dacă doriți să știți cum se procedează validarea constrângerilor pas cu pas în browser, verificați acest document WhatWG.
Datorită funcției de validare a constrângerilor HTML5, putem executa toate tastele standard de validare a intrărilor pe partea clientului fără JavaScript, numai cu HTML5.
Pentru a efectua sarcini mai complexe legate de validare, HTML5 ne oferă o funcționalitate JavaScript API pentru validarea restricțiilor putem folosi pentru a configura setările de validare personalizate.
Validați cu tipuri de intrări semantice
HTML5 a introdus semantic tipuri de intrări care - în afară de indicarea semnificației elementului pentru agenții utilizator - poate fi, de asemenea, folosit pentru a validarea datelor introduse de utilizator prin limitarea utilizatorilor la un anumit format de intrare.
Pe lângă tipurile de intrări care au existat deja înainte de HTML5 (text
, parola
, a depune
, restabili
, radio
, Caseta de bifat
, buton
, ascuns
), putem folosi și următoarele semantice tipuri de intrări HTML5: e-mail
,tel
,URL-ul
,număr
,timp
,Data
,datetime
,datetime-locală
, lună
,săptămână
, gamă
, căutare
,culoare
.
Putem folosi în siguranță tipurile de intrare HTML5 cu browserele mai vechi, deoarece acestea se vor comporta ca un din browserele care nu le suportă.
Să vedem ce se întâmplă atunci când utilizatorul introduce un tip greșit de intrare. Spuneți că am creat un câmp de introducere a e-mailului cu următorul cod:
Când utilizatorul introduce un șir care nu utilizează un format de e-mail, algoritmul de validare a constrângerilor nu trimite formularul, și returnează un mesaj de eroare:
Aceeași regulă se aplică și altor tipuri de intrări, de exemplu pentru type = "url"
utilizatorii pot trimite doar o intrare care urmează formatul URL (începe cu un protocol, cum ar fi http: //
sau ftp: //
).
Unele tipuri de intrări utilizează un design care să fie nici nu permite utilizatorilor să introducă un format de intrare greșit, de exemplu culoare
și gamă
.
Dacă folosim culoare
tip de intrare, utilizatorul este constrâns să aleagă o culoare din selectorul de culori sau să rămână cu negrul implicit. Câmpul de introducere este constrânsă de proiectare, prin urmare, nu lasă prea multe șanse pentru eroarea utilizatorului.
Când este necesar, merită să luați în considerare utilizarea Etichetă HTML care funcționează în mod similar cu aceste tipuri de intrări constrânse de proiectare; permite utilizatorilor să aleagă dintr-o listă derulantă.
Utilizați atributele de validare HTML5
Utilizarea tipurilor de intrări semantice stabilește anumite constrângeri cu privire la ceea ce li se permite să trimită utilizatorii, dar în multe cazuri vrem să mergem puțin mai departe. Acesta este momentul în care valori legate de validare din eticheta ne poate ajuta.
Valorile legate de validare aparțin anumitor tipuri de intrări (nu pot fi utilizate pe toate tipuri) pe care le impun constrângeri suplimentare.
1. necesar
pentru a obține o intrare validă prin toate mijloacele
necesar
atributul este cel mai cunoscut atribut de validare HTML. E o atributul boolean ceea ce înseamnă nu are nicio valoare, trebuie doar să o plasăm înăuntru eticheta dacă vrem să o folosim:
Dacă utilizatorul uită să introducă o valoare într-un câmp de intrare necesar, browser-ul returnează un mesaj de eroare care îi avertizează să completeze câmpul, și ei nu poate trimite formularul până când au furnizat o intrare validă. De aceea este important să intotdeauna marcați vizual câmpuri obligatorii către utilizatori.
necesar
atributul poate fi utilizat împreună cu următoarele tipuri de intrări: text
, căutare
, URL-ul
, tel
, e-mail
, parola
, Data
, datetime
, datetime-locală
, lună
, săptămână
,timp
, număr
, Caseta de bifat
, radio
, fişier
, plus cu și
Etichete HTML.
2. min
, max
și Etapa
pentru validarea numărului
min
, max
și Etapa
atributele ne permit pune constrângeri pe câmpurile de introducere a numerelor. Acestea pot fi utilizate împreună cu gamă
, număr
, Data
, lună
, săptămână
, datetime
, datetime-locală
, și timp
tipuri de intrări.
min
și max
atributele oferă o modalitate excelentă de a fi ușor exclude date nerezonabile. De exemplu, exemplul de mai jos obligă utilizatorii să depună o vârstă cuprinsă între 18 și 120 de ani.
Atunci când algoritmul de validare a constrângerilor intră într-o intrare a utilizatorului mai mică decât min
, sau mai mare decât max
valoare, îl împiedică să ajungă la backend și returnează un mesaj de eroare.
Etapa
atribut specifică un interval numeric între valorile legale ale unui câmp numeric de intrare. De exemplu, dacă dorim ca utilizatorii să aleagă numai din anii brute, putem adăuga pas = "4"
atribuiți câmpului. În exemplul de mai jos am folosit număr
tipul de intrare, deoarece nu există type = "an"
în HTML5.
Cu constrângerile prestabilite, utilizatorii pot alege doar din anii de salt între 1972 și 2016 dacă folosesc mica săgeată în sus care vine cu număr
tip de introducere. De asemenea, pot introduce o valoare manuală în câmpul de introducere, dar în cazul în care nu respectă constrângerile, browserul va returna un mesaj de eroare.
3. lungime maxima
pentru validarea lungimii textului
lungime maxima
atributul face posibilă setați o lungime maximă a caracterului pentru câmpurile de introducere textuală. Poate fi folosit împreună cu text
, căutare
, URL-ul
, tel
, e-mail
și parola
tipurile de intrări și cu Etichetă HTML.
lungime maxima
atributul poate fi o soluție excelentă pentru câmpurile pentru numărul de telefon care nu pot avea mai mult de un anumit număr de caractere sau pentru formularele de contact unde nu dorim ca utilizatorii să scrie mai mult decât o anumită lungime.
Fragmentul de cod de mai jos prezintă un exemplu pentru acesta din urmă, constrânge mesajele de utilizator la 500 de caractere.
lungime maxima
atribut nu returnează un mesaj de eroare, dar browserul pur și simplu nu permite utilizatorilor să introducă mai mult decât numărul de caractere specificat. De aceea este crucial să informează utilizatorii despre constrângere, în caz contrar, ei nu vor înțelege de ce nu pot continua cu tastarea.
4. model
pentru validarea Regex
model
atributul ne permite utilizați expresii regulate în procesul de validare a intrărilor. O expresie regulată este a set de caractere predefinite care formează un anumit tipar. Putem folosi fie pentru a căuta șiruri care urmează modelul, fie pentru a impune un anumit format definit de model.
Cu model
atributul pe care îl putem face celui din urmă - constrângeți utilizatorii să-și prezinte contribuția într-un format care să le permită se potrivește cu expresia obișnuită dată.
model
atributul are multe cazuri de utilizare, dar poate fi util mai ales atunci când dorim validați un câmp de parolă.
Exemplul de mai jos cere utilizatorilor să introducă o parolă cu lungimea minimă de 8 caractere și să conțină cel puțin o literă și un număr (sursa regexului folosit).
Mai multe lucruri
În acest articol, am aruncat o privire asupra modului de a utiliza browser-ul furnizat validarea formularului furnizate de algoritmul HTML de validare a constrângerilor native. Pentru crearea scripturilor noastre de validare personalizate, trebuie să folosim API-ul de validare a constrângerilor care poate fi următorul pas în perfecționarea abilităților de validare a formularului.
Formularele HTML5 sunt accesibile prin tehnologii de asistență, deci nu trebuie neapărat să le folosim arie-necesară
Atributul ARIA pentru a marca câmpurile de intrare necesare pentru cititoarele de ecran. Totuși, poate fi util să adăugați suport pentru accesibilitate pentru browserele mai vechi. Este, de asemenea, posibil să renunțați la validarea constrângerilor prin adăugarea novalidate
atributul boolean la element.