Uvod v validacijo omejitve HTML5
Interaktivnih spletnih mest in aplikacij si ni mogoče predstavljati brez oblik, ki nam omogočajo povežite se z našimi uporabniki, in do pridobiti podatke da bi zagotovili nemoteno poslovanje z njimi. Potrebujemo veljaven uporabniški vnos, vendar ga moramo pridobiti na tak način ne ovira našim uporabnikom preveč.
Čeprav lahko izboljšamo uporabnost naših obrazcev s pametno izbranimi vzorci oblikovanja UX, ima HTML5 tudi naraven mehanizem za preverjanje omejitev, ki nam omogoča, da ulovite napake pri vnosu neposredno na sprednji strani.
V tej objavi se bomo osredotočili na preverjanje omejitev, ki ga zagotavlja brskalnik, in poglejte, kako lahko razvijalci frontendov zaščitite veljaven vnos uporabnika s pomočjo HTML5.
Zakaj potrebujemo preverjanje vhodnega vmesnika
Vnos validacije ima dva glavna cilja. Vsebina, ki jo dobimo, mora biti:
1. Uporabno
Potrebujemo uporabne podatke, s katerimi lahko delamo. Ljudje moramo vstopiti realističnih podatkov v pravem formatu. Na primer, nihče, ki je danes živ, se ni rodil pred 200 leti. Zdi se, da so podatki, kot je ta, na prvi pogled smešni, dolgoročno pa je nadležno in našo bazo podatkov dopolni z neuporabnimi podatki.
2. Varno
Ko govorimo o varnosti, to pomeni, da moramo preprečiti vbrizganje zlonamerne vsebine - namerno ali po nesreči.
Uporabnost (pridobitev razumnih podatkov) je mogoče doseči samo na strani odjemalca, ekipi v ozadju ne morete pomagati. Doseči varnosti, Razvijalci front-and-backend morajo sodelovati.
Če razvijalci frontendov pravilno potrdijo vnos na strani odjemalca, bo bo morala reševati veliko manj ranljivosti. Hekiranje (spletno mesto) pogosto vključuje posredovanje dodatnih podatkov, ali podatkov v napačni obliki. Razvijalci se lahko borijo proti varnostnim luknjam, kot so te, se uspešno borijo s sprednje strani.
Na primer, ta priročnik za varnost PHP priporoča, da preverite vse, kar lahko na strani odjemalca. Poudarjajo pomembnost preverjanja vnosa vmesnika s številnimi primeri, kot so:
"Vhodna validacija najbolje deluje z zelo omejenimi vrednostmi, npr. Ko mora biti nekaj celo število ali alfanumerični niz ali URL HTTP."
V vhodnem preverjanju vhodnega vmesnika je naša naloga razumne omejitve na vnosu uporabnika. Funkcija preverjanja omejitev HTML5 nam omogoča, da to storimo.
Validacija omejitve HTML5
Pred HTML5 so bili razvijalci frontendov omejeni na preverjanje vnosa uporabnika z JavaScriptom, ki je bil dolgočasen in nagnjen k napakam. Za izboljšanje preverjanja obrazcev na strani odjemalca je HTML5 uvedel a potrditev omejitev algoritem, ki deluje v sodobnih brskalnikih, in preverja veljavnost predloženega vnosa.
Za izvedbo ocene uporablja algoritem atributi vnosnih elementov, povezanih z validacijo, kot naprimer ,
, in
. Če želite izvedeti, kako se preverjanje veljavnosti omejitev dogaja korak za korakom v brskalniku, preverite ta dokument WhatWG.
Zahvaljujoč funkciji za preverjanje omejitev HTML5 lahko izvedemo vse standardne naloge validacije vhodov na strani odjemalca brez JavaScripta, samo s HTML5.
Za izvedbo zahtevnejših opravil, povezanih s preverjanjem, nam HTML5 nudi a API za preverjanje veljavnosti omejitve lahko uporabimo za nastavitev skriptov za preverjanje po meri.
Preverjanje veljavnosti s semantičnimi vnosnimi tipi
HTML5 je uveden semantični vhodni tipi da se - poleg navedbe pomena elementa za uporabniške agente - lahko uporablja tudi preverite vnos uporabnika z omejevanjem uporabnikov na določeno obliko vnosa.
Poleg vhodnih tipov, ki so že obstajali pred HTML5 (besedilo
, geslo
, predložiti
, ponastaviti
, radio
, potrditveno polje
, gumb
, skrito
), lahko uporabimo tudi naslednje semantični HTML5 vhodni tipi: E-naslov
,tel
,url
,številko
,čas
,datum
,Datum čas
,datetime-local
, mesec
,tedna
, območju
, Iskanje
,barve
.
S starejšimi brskalniki lahko varno uporabljamo vhodne tipe HTML5, saj se bodo obnašali kot v brskalnikih, ki jih ne podpirajo.
Poglejmo, kaj se zgodi, ko uporabnik vnese napačno vrsto vnosa. Recimo, da smo ustvarili vnosno polje z naslednjo kodo:
Ko uporabnik vnese niz, ki ne uporablja oblike e-pošte, uporabi algoritem za preverjanje omejitev obrazec ni bil poslan, in vrne sporočilo o napaki:
Enako pravilo velja tudi za druge vrste vnosov, na primer za type = "url"
uporabniki lahko predložijo samo vnos, ki sledi formatu URL (začne se s protokolom, kot je http: //
ali ftp: //
).
Nekateri vhodni tipi uporabljajo obliko, ki uporabnikom ne dovoljuje niti vnos napačne oblike vnosa, na primer barve
in območju
.
Če uporabimo barve
vhodni tip je uporabnik omejen na izbiro barve iz izbirnika barv ali bivanje s privzeto črno barvo. Polje za vnos je oblikovan, zato ne pušča veliko možnosti za napako uporabnika.
Ko je to primerno, je vredno razmisliti o uporabi Oznaka HTML, ki deluje podobno kot ti vhodni tipi, ki so omejeni glede na obliko; uporabnikom omogoča izbiro iz spustnega seznama.
Uporabite atribute za preverjanje veljavnosti HTML5
Uporaba semantičnih vhodnih vrst določa določene omejitve glede tega, kaj lahko uporabniki oddajo, vendar v mnogih primerih želimo iti malo dlje. To je takrat, ko atributi, povezani z validacijo od nam lahko pomaga.
Atributi, povezani s preverjanjem, pripadajo določenim vrstam vnosov (ne morejo se uporabljati za vse vrste, na katere nalagajo dodatne omejitve.
1. potrebno
za vse veljavne vnose
The potrebno
atribut je najbolj znani atribut validacije HTML. Je boolean atribut kar pomeni nima nobene vrednosti, preprosto ga moramo postaviti v notranjost označite, če ga želimo uporabiti:
Če uporabnik pozabi vnesti vrednost v zahtevano vnosno polje, brskalnik vrne sporočilo o napaki ki jih opozarja, naj izpolnijo polje, in to obrazca ne morete poslati dokler ne zagotovijo veljavnega vnosa. Zato je vedno pomembno vizualno označite zahtevana polja za uporabnike.
The potrebno
atribut skupaj z naslednjimi vhodnimi tipi: besedilo
, Iskanje
, url
, tel
, E-naslov
, geslo
, datum
, Datum čas
, datetime-local
, mesec
, tedna
,čas
, številko
, potrditveno polje
, radio
, mapa
, plus z in
HTML oznake.
2. min
, maks
in korak
za preverjanje števila
The min
, maks
in korak
atributi nam omogočajo omejitve na polja za vnos številk. Lahko se uporabljajo skupaj z območju
, številko
, datum
, mesec
, tedna
, Datum čas
, datetime-local
, in čas
vrste vnosov.
The min
in maks
atributi zagotavljajo odličen način za enostavno izključiti nerazumne podatke. Na primer spodnji primer prisili uporabnike, da predložijo starost med 18 in 120 let.
Ko algoritem za preverjanje omejitve naleti na vhod uporabnika, manjši od min
, ali večji od maks
vrednost, preprečuje, da bi dosegel backend, in vrne sporočilo o napaki.
The korak
atribut določa numerični interval med pravnimi vrednostmi številskega polja za vnos. Na primer, če želimo, da uporabniki izbirajo samo iz prestopnih let, lahko dodamo korak = "4"
atribut polja. V spodnjem primeru sem uporabil številko
vrsto vnosa, ker ni type = "year"
v HTML5.
Z vnaprej določenimi omejitvami lahko uporabniki izberejo le prestopna leta med letoma 1972 in 2016, če uporabijo malo puščico navzgor, ki je priložena številko
vrsto vnosa. Prav tako lahko ročno vnesejo vrednost v vnosno polje, vendar v primeru, da ne ustreza omejitvam, bo brskalnik vrnil sporočilo o napaki.
3. maxlength
za validacijo dolžine besedila
The maxlength
atribut omogoča nastavite največjo dolžino znaka za besedilna polja za vnos. Lahko se uporablja skupaj z besedilo
, Iskanje
, url
, tel
, E-naslov
in geslo
vrste vnosov in z Oznaka HTML.
The maxlength
atribut je lahko odlična rešitev za polja telefonskih številk, ki ne smejo imeti več kot določeno število znakov, ali za obrazce za stike, kjer ne želimo, da uporabniki pišejo več kot določeno dolžino.
Odrezek kode spodaj prikazuje primer za slednje, saj omejuje uporabniška sporočila na 500 znakov.
The maxlength
atribut se ne vrne sporočilo o napaki, vendar brskalnik preprosto ne dovoli uporabnikom, da vnesejo več kot določeno število znakov. Zato je ključnega pomena obveščanje uporabnikov o omejitvi, drugače ne bodo razumeli, zakaj ne morejo nadaljevati s tipkanjem.
4. vzorec
za preverjanje Regexa
The vzorec
atribut nam omogoča uporabite regularne izraze v našem postopku validacije vnosa. Redni izraz je a vnaprej določen nabor znakov ki tvorijo določen vzorec. Lahko ga uporabimo za iskanje nizov, ki sledijo vzorcu, ali za uveljavljanje določenega formata, ki ga določa vzorec.
Z vzorec
atribut lahko naredimo slednji - uporabnikom onemogočimo, da predložijo svoje vnose v obliki, ki ustreza danemu regularnemu izrazu.
The vzorec
atribut ima veliko primerov uporabe, vendar je lahko še posebej uporaben, če želimo preverite polje gesla.
Spodnji primer od uporabnikov zahteva, da vnesejo geslo, ki je dolgo najmanj 8 znakov, in vsebuje vsaj eno črko in eno številko (vir uporabljenega izraza I).
Še nekaj stvari
V tem članku smo si ogledali, kako uporabiti preverjanje obrazcev, ki je na voljo v brskalniku izvirnega algoritma za preverjanje omejitev HTML5. Če želite ustvariti naše skripte za preverjanje veljavnosti po meri, moramo uporabiti API za preverjanje veljavnosti omejitve, ki je lahko naslednji korak pri izpopolnjevanju sposobnosti preverjanja veljavnosti obrazcev.
Obrazci HTML5 so dostopni s pomočjo podpornih tehnologij, zato ni nujno, da jih uporabljamo aria
Atribut ARIA za označevanje zahtevanih vnosnih polj za bralnike zaslona. Vendar pa je lahko še vedno koristno dodati podporo za dostopnost starejšim brskalnikom. Možno je tudi izključite potrditev omejitev z dodajanjem novalidat
boolean atribut element.