Uvod u validaciju HTML5 ograničenja
Interaktivne web-lokacije i aplikacije ne mogu se zamisliti bez oblika koji nam omogućuju povežite se s našim korisnicima, i za dobiti podatke trebamo kako bismo osigurali glatke transakcije s njima. Trebamo važeći korisnički unos, međutim, trebamo ga steći na takav način ne frustrira našim korisnicima previše.
Iako možemo poboljšati upotrebljivost naših obrazaca pametno odabranim UX dizajnom, HTML5 ima i izvorni mehanizam za provjeru ograničenja koji nam omogućuje hvatanje pogrešaka unosa točno u prednjem kraju.
U ovom postu ćemo se usredotočiti na provjera valjanosti ograničenja preglednika, i pogledajte kako programeri frontendi mogu osigurajte valjani korisnički unos pomoću HTML5.
Zašto nam je potrebna ulazna provjera valjanosti
Provjera valjanosti unosa ima dva glavna cilja. Sadržaj koji dobivamo mora biti:
1. Korisno
Trebamo korisne podatke s kojima možemo raditi. Moramo natjerati ljude da uđu realne podatke u ispravnom formatu. Na primjer, nitko tko je živ danas nije rođen prije 200 godina. Dobivanje podataka kao što je ovaj možda se na prvi pogled čini smiješnim, ali dugoročno gledajući neugodno, i popunjava našu bazu podataka beskorisnim podacima.
2. Osigurajte
Kada govorimo o sigurnosti, to znači da trebamo spriječiti ubrizgavanje zlonamjernog sadržaja - namjerno ili slučajno.
Korisnost (dobivanje razumnih podataka) može se postići samo na strani klijenta, backend tim ne može previše pomoći s tim. Postići sigurnosti, prednji i stražnji programeri moraju raditi zajedno.
Ako developeri ispravno potvrde unos na strani klijenta, tim će se morati nositi s mnogo manje ranjivosti. Hakiranje (stranica) često povlači za sobom slanje dodatnih podataka, ili podataka u pogrešnom formatu. Programeri se mogu boriti protiv sigurnosnih rupa poput ovih, uspješno se bore s front-end.
Na primjer, ovaj PHP vodič za sigurnost preporučuje da provjerite sve što možemo na strani klijenta. Oni naglašavaju važnost validacije ulaznog sučelja tako da daju brojne primjere, kao što su:
"Ulazna provjera valjanosti najbolje funkcionira s iznimno ograničenim vrijednostima, npr. Kada nešto mora biti cijeli broj ili alfanumerički niz ili HTTP URL."
U validaciji ulaznog sučelja naš je posao nametnuti razumna ograničenja na korisničkom unosu. Značajka validacije ograničenja HTML5 omogućuje nam da to učinimo.
Validacija HTML5 ograničenja
Prije HTML5, programeri su bili ograničeni na provjera valjanosti korisničkog unosa pomoću JavaScripta, što je bio dosadan i sklon pogreškama. Kako bi poboljšao provjeru obrazaca na strani klijenta, HTML5 je uveo a validacija ograničenja algoritam koji se izvodi u modernim preglednicima i provjerava valjanost dostavljenog unosa.
Za procjenu, algoritam koristi atributi koji se odnose na validaciju ulaznih elemenata, kao što su ,
, i
. Ako želite znati kako se provjera ograničenja događa korak po korak u pregledniku, pogledajte ovaj WhatWG dokument.
Zahvaljujući značajci provjere ograničenja HTML5, možemo izvršiti sve zadaci standardne validacije ulaza na strani klijenta bez JavaScripta, samo s HTML5.
Za izvođenje složenijih zadataka vezanih uz provjeru valjanosti, HTML5 nam daje a JavaScript API za provjeru ograničenja možemo koristiti za postavljanje prilagođenih skripti za provjeru valjanosti.
Potvrdite s tipovima semantičkog ulaza
HTML5 je uveden tipovi semantičkih ulaza da - osim ukazivanja na značenje elementa za korisničke agente - također se može koristiti provjera valjanosti korisničkog unosa ograničavanjem korisnika na određeni ulazni format.
Osim tipova ulaza koji su već postojali prije HTML5 (tekst
, zaporka
, podnijeti
, reset
, radio
, okvir
, dugme
, skriven
), također možemo koristiti sljedeće semantičke HTML5 vrste unosa: e
,tel
,uRL
,broj
,vrijeme
,datum
,Datum vrijeme
,datetime-lokalne
, mjesec
,tjedan
, opseg
, traži
,boja
.
Sa starijim preglednicima možemo sigurno koristiti HTML5 tipove ulaza jer će se ponašati kao u preglednicima koji ih ne podržavaju.
Pogledajmo što se događa kada korisnik unese pogrešan tip unosa. Recimo da smo stvorili polje za unos e-pošte sa sljedećim kodom:
Kada korisnik upiše niz koji ne koristi format e-pošte, algoritam validacije ograničenja ne šalje obrazac, i vraća poruku o pogrešci:
Isto pravilo vrijedi i za druge vrste unosa, primjerice za type = "url"
korisnici mogu poslati samo unos koji slijedi URL format (počinje s protokolom, kao što je http: //
ili ftp: //
).
Neki tipovi ulaza koriste dizajn koji korisnicima čak ne dopušta unos pogrešnog formata unosa, na primjer boja
i opseg
.
Ako koristimo boja
Ulazni tip korisnika ograničen je na odabir boje iz odabira boje ili zadržavanje s zadanom crnom bojom. Polje za unos je ograničena dizajnom, stoga ne ostavlja mnogo šanse za korisničku pogrešku.
Kada je to prikladno, vrijedi razmotriti korištenje HTML oznaka koja radi slično tim vrstama unosa ograničenih po dizajnu; korisnicima omogućuje odabir s padajućeg popisa.
Koristite HTML5-ove atribute provjere valjanosti
Korištenje semantičkih ulaznih tipova postavlja određena ograničenja na ono što je korisnicima dopušteno poslati, ali u mnogim slučajevima želimo ići malo dalje. Ovo je kada atributi povezani s provjerom valjanosti od može nam pomoći.
Atributi povezani s provjerom valjanosti pripadaju određenim vrstama unosa (ne mogu se koristiti na svi vrste) na kojima nameću dodatna ograničenja.
1. potreban
za dobivanje valjanih unosa svim sredstvima
potreban
atribut je najpoznatiji atribut HTML provjere valjanosti. To je boolean atribut što znači ne uzima nikakvu vrijednost, jednostavno je moramo smjestiti u označite ako ga želimo koristiti:
Ako korisnik zaboravi unijeti vrijednost u traženo polje za unos, preglednik vraća poruku o pogrešci koji ih upozorava da popune polje, i oni ne može poslati obrazac dok ne pruže valjani unos. Zato je uvijek važno označiti vizualno obavezna polja za korisnike.
potreban
atribut može biti zajedno s sljedećim vrstama ulaza: tekst
, traži
, uRL
, tel
, e
, zaporka
, datum
, Datum vrijeme
, datetime-lokalne
, mjesec
, tjedan
,vrijeme
, broj
, okvir
, radio
, datoteka
, plus uz i
HTML oznake.
2. min
, maksimum
i korak
za provjeru broja
min
, maksimum
i korak
atributi omogućuju nam staviti ograničenja na polja za unos brojeva. Mogu se koristiti zajedno s opseg
, broj
, datum
, mjesec
, tjedan
, Datum vrijeme
, datetime-lokalne
, i vrijeme
vrste unosa.
min
i maksimum
atributi pružaju sjajan način za lako isključiti nerazumne podatke. Primjerice, primjer ispod prisiljava korisnike da podnesu dob između 18 i 120 godina.
Kada algoritam validacije ograničenja naleti na korisnički unos manji od min
, ili veći od maksimum
vrijednost, sprječava da dođe do pozadine i vraća poruku o pogrešci.
korak
atribut određuje numerički interval između zakonskih vrijednosti numeričkog polja za unos. Na primjer, ako želimo da korisnici izaberu samo iz prijestupnih godina možemo dodati korak = "4"
atribut za polje. U primjeru ispod koristio sam broj
tip ulaza, jer nema type = "godine"
u HTML5.
S prethodno postavljenim ograničenjima, korisnici mogu odabrati samo iz prijestupnih godina između 1972. i 2016. ako koriste malu strelicu gore koja dolazi s broj
vrstu unosa. Također mogu ručno unijeti vrijednost u polje za unos, ali u slučaju da ne ispunjava ograničenja, preglednik će vratiti poruku o pogrešci.
3. maksimalna dužina
za provjeru valjanosti teksta
maksimalna dužina
atribut omogućuje postavite maksimalnu duljinu znaka za tekstualna polja za unos. Može se koristiti zajedno s tekst
, traži
, uRL
, tel
, e
i zaporka
vrste unosa i sa HTML oznaka.
maksimalna dužina
atribut može biti izvrsno rješenje za polja telefonskog broja koja ne mogu imati više od određenog broja znakova, ili za obrasce za kontakt u kojima ne želimo da korisnici pišu više od određene duljine.
Isječak koda u nastavku prikazuje primjer za potonje, ograničava korisničke poruke na 500 znakova.
maksimalna dužina
atribut ne šalje poruku o pogrešci, ali preglednik jednostavno ne dopušta korisnicima da unose više od navedenog broja znakova. Zato je ključno obavijestiti korisnike o ograničenju, inače neće razumjeti zašto ne mogu nastaviti s tipkanjem.
4. uzorak
za provjeru Regexa
uzorak
atribut dopustite nam koristite regularne izraze u našem procesu provjere valjanosti unosa. Uobičajeni izraz je a unaprijed zadani skup znakova koji tvore određeni uzorak. Možemo ga upotrijebiti ili za pretraživanje nizova koji slijede uzorak, ili za nametanje određenog formata definiranog obrascem.
Sa uzorak
atribut možemo učiniti potonji - ograničiti korisnike da pošalju svoj unos u formatu koji odgovara danom regularnom izrazu.
uzorak
atribut ima mnogo slučajeva upotrebe, ali može biti posebno korisno kada to želimo potvrdite polje za lozinku.
Primjer u nastavku zahtijeva od korisnika da unesu zaporku dugu najmanje 8 znakova i da sadrži najmanje jedno slovo i jedan broj (izvorni izraz koji sam koristio).
Još nekoliko stvari
U ovom članku smo pogledali kako iskoristiti provjeru obrasca isporučene s preglednikom osigurava HTML5-ov prirodni algoritam validacije ograničenja. Za izradu prilagođenih skripti za provjeru valjanosti moramo koristiti API ograničenja za provjeru valjanosti koji može biti sljedeći korak u usavršavanju vještina provjere valjanosti obrazaca.
HTML5 obrasci su dostupni pomoćnim tehnologijama, tako da ne moramo nužno koristiti Aria-potrebno
ARIA atribut za označavanje potrebnih polja za unos za čitače zaslona. Međutim, još uvijek može biti korisno dodati podršku za pristupačnost starijim preglednicima. Također je moguće isključite potvrdu ograničenja dodavanjem novalidate
boolean atribut za element.