Intro Into HTML5 piirangute kinnitamisse
Interaktiivseid veebisaite ja rakendusi ei saa ette kujutada ilma vormideta ühendust meie kasutajatega, ja saada andmeid me vajame nendega sujuvate tehingute tagamiseks. Me vajame kehtiv kasutaja sisend, me peame selle siiski omandama ei häiri meie kasutajad liiga palju.
Kuigi me saame parandada meie vormide kasutatavust arukalt valitud UX-i kujundusmudelitega, on HTML5-l ka natiivne mehhanism piirangute kinnitamiseks, mis võimaldab meil püüda sisendvigu otse esiküljel.
Selles postituses keskendume brauseriga kaasnev piirangute kinnitamine, ja vaadake, kuidas frontendi arendajad saavad seda teha turvaline kasutaja sisend HTML5 abil.
Miks me vajame Front-End Input Validationi
Sisendi valideerimine on kaks peamist eesmärki. Saavutatav sisu peab olema:
1. Kasulik
Me vajame kasutatavad andmed, millega saame töötada. Me peame inimesi sisenema realistlikud andmed õiges vormingus. Näiteks ei ole keegi, kes täna elus on, sündinud 200 aastat tagasi. Selliste andmete saamine võib algul tunduda naljakas, kuid pikemas perspektiivis on see tüütu ja meie andmebaasi kasutavad kasutud andmed.
2. Turvaline
Viidates turvalisusele, tähendab see seda, et me peame vältida pahatahtliku sisu süstimist - tahtlikult või juhuslikult.
Saavutada kasulikkus (mõistlike andmete saamine) ainult kliendi poolel, backend meeskond ei saa sellega liiga palju aidata. Saavutada turvalisust, esi- ja taustaprogrammide arendajad peavad töötama koos.
Kui frontendi arendajad valideerivad kliendi poolel sisendi õigesti, siis backend meeskond peab tegelema palju vähem haavatavusi. Häkkimine (sait) tähendab sageli täiendavate andmete esitamine, või andmed vales vormingus. Arendajad saavad võidelda selliste turvaaugudega nagu näiteks, võidelda edukalt esiotsa eest.
Näiteks soovitab see PHP turvajuhend kontrollida kõike, mida saame kliendi poolel teha. Nad rõhutavad esiplaanile sisendi valideerimise tähtsust, esitades mitmeid näiteid, näiteks:
"Sisendvalideerimine toimib kõige paremini äärmiselt piiratud väärtustega, näiteks kui midagi peab olema täisarv või tähtnumbriline string või HTTP-URL."
Esialgse sisendi valideerimisel on meie ülesanne kehtestada mõistlikke piiranguid kasutaja sisend. HTML5 piirangute valideerimise funktsioon annab meile selleks vajalikud vahendid.
HTML5 piirangute kinnitamine
Enne HTML5 kasutamist piirdusid frontendiarendajad kasutaja sisendi kinnitamine JavaScriptiga, see oli tüütu ja vigade tekkimise protsess. Kliendipoolse vormi valideerimise parandamiseks on HTML5 kasutusele võtnud a piirangute valideerimine algoritm, mis töötab kaasaegsetes brauserites ja kontrollib esitatud sisendi õigsust.
Hindamise läbiviimiseks kasutab algoritm sisendelementide valideerimisega seotud atribuudid, nagu näiteks ,
, ja
. Kui soovite teada, kuidas piirangute kinnitamine toimub brauseris samm-sammult, vaadake seda WhatWG doc.
Tänu HTML5 piirangute valideerimise funktsioonile saame kõik täita standardseid sisendvalideerimise ülesandeid kliendi poolel ilma JavaScriptita, ainult HTML5-ga.
Keerulisemate valideerimisega seotud ülesannete täitmiseks pakub HTML5 meile a Piirangu valideerimise JavaScript API saame kasutada kohandatud kohandatud skriptide seadistamist.
Valideerige semantilise sisenditüüpidega
HTML5 on kasutusele võtnud semantilise sisendi tüübid et peale selle, et näidatakse kasutajaagentide elemendi tähendust, võib seda kasutada valideerida kasutaja sisend piirates kasutajaid teatud sisendvorminguga.
Peale sisenditüüpide, mis on enne HTML5-d juba olemas olnudteksti
, parool
, Esita
, lähtestamine
, raadio
, märkeruut
, nuppu
, peidetud
), saame kasutada ka järgmist semantilise HTML5 sisenditüübid: e-posti teel
,tel
,url
,number
,aega
,kuupäev
,kuupäev Kellaaeg
,datetime-local
, kuus
,nädal
, vahemikus
, otsing
,värv
.
Me võime vanemate brauseritega turvaliselt kasutada HTML5 sisenditüüpe, kuna need käituvad brauserites, mis neid ei toeta.
Vaatame, mis juhtub, kui kasutaja sisestab vale sisenditüübi. Ütle, et oleme loonud e-posti sisestusvälja järgmise koodiga:
Kui kasutaja sisestab stringi, mis ei kasuta e-posti vormingut, siis piirangu valideerimise algoritm ei esita vormi, ja tagastab veateate:
Sama reegel kehtib ka teiste sisenditüüpide kohta, näiteks type = "url"
kasutajad saavad esitada sisendi, mis järgib URL-vormingut (algab protokolliga, näiteks http: //
või ftp: //
).
Mõned sisenditüübid kasutavad disaini isegi ei võimalda kasutajatel sisestada vale sisestusformaadi, näiteks värv
ja vahemikus
.
Kui me seda kasutame värv
sisenditüüp on kasutajal sunnitud kas värvivalijast värvi valima või jääma vaikevärviga. Sisend väli on piiratud, seetõttu ei jäta see kasutajale viga.
Kui see on asjakohane, tasub kaaluda selle kasutamist HTML-silt, mis töötab sarnaselt nende piirangutega sisenditüüpidele; see võimaldab kasutajatel valida rippmenüüst.
Kasutage HTML5 valideerimise atribuute
Semantiliste sisenditüüpide kasutamine seab teatud piirangud sellele, mida kasutajad saavad esitada, kuid paljudel juhtudel tahame minna veidi kaugemale. See on siis, kui valideerimisega seotud atribuudid selle silt võib meid aidata.
Valideerimisega seotud atribuudid kuuluvad teatud sisenditüüpidesse (neid ei saa kasutada kõik tüübid), millele nad kehtestavad täiendavaid piiranguid.
1. nõutud
kehtiva sisendi saamiseks kõigi vahenditega
The nõutud
atribuut on kõige tuntum HTML valideerimise atribuut. See on boolean atribuut see tähendab seda ei võta mingit väärtust, me lihtsalt peame selle asetama silt, kui soovime seda kasutada:
Kui kasutaja unustab sisestada väärtuse soovitud sisestusväljale, siis brauser tagastab veateate mis hoiatab neid täitma, ja nad ei saa vormi esitada kuni nad on andnud kehtiva sisendi. Sellepärast on see alati oluline märkige visuaalselt kohustuslikud väljad kasutajatele.
The nõutud
atribuut võib olla kasutatakse koos järgmiste sisenditüüpidega: teksti
, otsing
, url
, tel
, e-posti teel
, parool
, kuupäev
, kuupäev Kellaaeg
, datetime-local
, kuus
, nädal
,aega
, number
, märkeruut
, raadio
, faili
, pluss koos ja
HTML-märgendid.
2. min
, max
ja samm
numbri valideerimiseks
The min
, max
ja samm
atribuudid võimaldavad meil arvukate sisendväljade suhtes piiranguid. Neid saab kasutada koos vahemikus
, number
, kuupäev
, kuus
, nädal
, kuupäev Kellaaeg
, datetime-local
, ja aega
sisenditüübid.
The min
ja max
atribuudid on suurepärane võimalus lihtsalt välistama ebamõistlikke andmeid. Näiteks allpool toodud näide sunnib kasutajaid esitama vanuse 18 kuni 120 aastat.
Kui piirangute valideerimise algoritm kukub kasutaja sisendisse, mis on väiksem kui min
, või suurem kui max
väärtus takistab selle jõudmist taustaprogrammi ja tagastab veateate.
The samm
atribuut määrab numbrilise intervalli numbrilise sisestusvälja õiguslike väärtuste vahel. Näiteks kui soovime, et kasutajad valiksid ainult hüppeaastatest, siis saame lisada step = "4"
atribuut põllule. Allolevas näites kasutasin number
sisenditüüp, kuna pole type = "year"
HTML5-s.
Eelnevalt seatud piirangute abil saavad kasutajad valida ainult ajavahemike 1972 ja 2016 vahel, kui nad kasutavad väikest noolt, mis kaasneb number
sisenditüüp. Nad võivad sisestada väärtuse ka käsitsi sisestusväljale, kuid juhul, kui see ei vasta piirangutele, tagastab brauser veateate.
3. maksimaalne pikkus
teksti pikkuse valideerimiseks
The maksimaalne pikkus
atribuut võimaldab määrake maksimaalne märgi pikkus tekstisiseste väljade jaoks. Seda saab kasutada koos teksti
, otsing
, url
, tel
, e-posti teel
ja parool
sisenditüübid ja HTML-silt.
The maksimaalne pikkus
atribuut võib olla suurepärane lahendus telefoninumbriväljadele, millel ei saa olla rohkem kui teatud arvu märke, või kontaktivormidele, kus me ei soovi, et kasutajad kirjutaksid rohkem kui teatud pikkusega.
Alltoodud koodilõigu näide on viimase näide, see piirab kasutaja sõnumeid 500 tähemärgiga.
The maksimaalne pikkus
atribuut ei anna veateadet, kuid brauser lihtsalt ei luba kasutajatel sisestada rohkem kui määratud tähemärk. Sellepärast on see ülioluline teavitada kasutajaid piirangust, vastasel juhul ei saa nad aru, miks nad ei saa kirjutada.
4. muster
Regexi valideerimiseks
The muster
atribuut võimaldab meil kasutage regulaaravaldisi meie sisendi valideerimisprotsessis. Regulaarne väljend on a eelnevalt määratletud märkide kogum mis moodustavad teatud mustri. Me saame seda kasutada kas stringi järgivate stringide otsimiseks või teatud vormingus määratud vormi jõustamiseks.
Koos muster
atribuut, mida me saame teha - piirata kasutajaid esitama oma sisendit sellises vormingus vastab antud regulaaravaldisele.
The muster
atribuudil on palju kasutamisjuhtumeid, kuid see võib olla eriti kasulik, kui soovime parooli välja valideerimiseks.
Alljärgnev näide nõuab kasutajatelt parooli, mis on vähemalt 8 tähemärki, ja sisaldab vähemalt ühte tähte ja ühte numbrit (kasutatava regexi allikas).
Veel mõned asjad
Selles artiklis vaadeldi, kuidas seda kasutada brauseriga varustatud vormi valideerimine HTML5 natiivsete piirangute valideerimise algoritm. Kohandatud valideerimise skriptide loomiseks peame kasutama piirangute valideerimise API-d, mis võib olla järgmine samm vormide valideerimise oskuste täiustamisel.
HTML5 vorme saab kasutada abitehnoloogiatega, seega ei pea me tingimata kasutama aria vaja
ARIA atribuut, et tähistada ekraanilugejate vajalikke sisendvälju. Siiski võib siiski olla kasulik lisada vanemate brauserite juurdepääsetavuse toetus. Samuti on võimalik loobuda piirangute kinnitamisest lisades novalidaat
boolean atribuut element.