Ievads HTML5 ierobežojuma validācijā
Interaktīvas tīmekļa vietnes un lietojumprogrammas nevar iedomāties bez veidlapām, kas ļauj mums sazināties ar mūsu lietotājiem, un uz iegūt datus mums ir nepieciešams, lai nodrošinātu vienmērīgus darījumus ar viņiem. Mums vajag derīga lietotāja ievade, tomēr mums tas ir jāiegūst tādā veidā neapgrūtina mūsu lietotājiem pārāk daudz.
Lai gan mēs varam uzlabot mūsu veidlapu lietojamību ar gudri izvēlētiem UX dizaina modeļiem, HTML5 ir arī vietējais ierobežojumu apstiprināšanas mehānisms, kas ļauj mums nozvejas ievades kļūdas tieši priekšējā galā.
Šajā ziņojumā mēs pievērsīsim uzmanību pārlūkprogrammas piegādātā ierobežojuma validācija, un izpētīt, kā frontend izstrādātāji var drošu lietotāja ievadi, izmantojot HTML5.
Kāpēc mums ir vajadzīgs priekšējās ievades apstiprinājums
Ievades validācija ir divi galvenie mērķi. Saturs, kas mums nepieciešams, ir:
1. Noderīgi
Mums vajag izmantojamie dati, ar kuriem mēs varam strādāt. Mums ir jāievieš cilvēki reālus datus pareizajā formātā. Piemēram, neviens, kas šodien dzīvo, nav dzimis pirms 200 gadiem. Tādu datu iegūšana sākumā var likties smieklīgi, bet ilgtermiņā tas ir kaitinoši, un mūsu datu bāze tiek izmantota bezjēdzīgi dati.
2. Droši
Atsaucoties uz drošību, tas nozīmē, ka mums ir nepieciešams novērstu ļaunprātīga satura injicēšanu - apzināti vai nejauši.
Var sasniegt lietderību (iegūt saprātīgus datus) tikai klienta pusē, backend komanda nevar ar to pārāk daudz palīdzēt. Lai sasniegtu drošību, priekšējiem un aizmugurējiem izstrādātājiem ir jāstrādā kopā.
Ja frontend izstrādātāji pareizi apstiprina ievadi klienta pusē, backend komandai būs jārisina daudz mazāk neaizsargātību. Datorurķēšana (vietne) bieži ir saistīta ar papildu datu iesniegšana, vai datus nepareizā formātā. Izstrādātāji var cīnīties pret tādiem drošības caurumiem kā veiksmīgi cīnīties no priekšpuses.
Piemēram, šis PHP drošības ceļvedis iesaka pārbaudīt visu, kas iespējams klienta pusē. Viņi uzsver, ka liela nozīme ir priekšplāna ievades validācijai, sniedzot daudzus piemērus, piemēram:
"Ievades validācija vislabāk darbojas ar ļoti ierobežotām vērtībām, piemēram, ja kaut kas ir vesels skaitlis, vai burtu un ciparu virkne, vai HTTP URL."
Frontend ievades validācijā mūsu uzdevums ir noteikt saprātīgus ierobežojumus lietotāja ievadā. HTML5 ierobežojuma apstiprināšanas funkcija sniedz mums līdzekļus, lai to izdarītu.
HTML5 ierobežojuma validācija
Pirms HTML5 frontend izstrādātāji bija ierobežoti lietotāja ievades apstiprināšana ar JavaScript, kas bija garlaicīgs un kļūdainu procesu. Lai uzlabotu klienta puses formas apstiprināšanu, HTML5 ir ieviesusi a ierobežojumu apstiprināšana algoritms, kas darbojas modernās pārlūkprogrammās, un pārbauda iesniegto datu derīgumu.
Lai veiktu novērtējumu, algoritms izmanto ar ievades elementiem saistītie atribūti, piemēram, ,
, un
. Ja vēlaties uzzināt, kā pārlūkprogrammā pārlūkprogrammā notiek ierobežojumu apstiprināšana, pārbaudiet šo WhatWG doc.
Pateicoties HTML5 ierobežojuma validācijas funkcijai, mēs varam izpildīt visus standarta ievades validācijas uzdevumi klienta pusē bez JavaScript, tikai ar HTML5.
Lai veiktu sarežģītākus validācijas uzdevumus, HTML5 sniedz mums a Ierobežojuma validācijas JavaScript API mēs varam izmantot, lai iestatītu mūsu pielāgotos validācijas skriptus.
Apstipriniet ar semantisko ievades tipu
HTML5 ir ieviests semantisko ievades tipu var arī pierādīt, ka, neņemot vērā elementu nozīmi lietotāju aģentiem apstiprināt lietotāja ievadi ierobežojot lietotājus ar noteiktu ievades formātu.
Bez ievades tipiem, kas jau pastāvēja pirms HTML5 (tekstu
, parole
, Iesniegt
, atiestatīt
, radio
, izvēles rūtiņu
, poga
, slēpta
), mēs varam izmantot arī šādus semantiskā HTML5 ievades veidi: e-pastu
,tel
,URL
,numuru
,laiks
,datums
,datums Laiks
,datetime-local
, mēnesī
,nedēļu
, diapazonā
, Meklēt
,krāsa
.
Mēs varam droši izmantot HTML5 ievades tipus ar vecākām pārlūkprogrammām, jo tās darbosies kā pārlūkprogrammās, kas tos neatbalsta.
Redzēsim, kas notiek, kad lietotājs ievada nepareizu ievades veidu. Sakiet, ka esam izveidojuši e-pasta ievades lauku ar šādu kodu:
Kad lietotājs ieraksta virkni, kas neizmanto e-pasta formātu, ierobežojuma validācijas algoritms neiesniedz veidlapu, un atgriež kļūdas ziņojumu:
Tas pats noteikums attiecas arī uz citiem ievades tipiem, piemēram, type = "url"
lietotāji var iesniegt tikai ievadi, kas atbilst URL formātam (sākas ar protokolu, piemēram, http: //
vai ftp: //
).
Daži ievades veidi izmanto dizainu pat neļauj lietotājiem ievadīt nepareizu ievades formātu, piemēram krāsa
un diapazonā
.
Ja mēs izmantojam krāsa
ievades veids lietotājam ir spiests izvēlēties krāsu no krāsu atlasītāja vai palikt ar melno noklusējumu. Ievades lauks ir ierobežota ar dizainu, tāpēc tas neļauj daudz kļūdu lietotājam.
Ja tas ir lietderīgi, ir vērts apsvērt iespēju izmantot HTML birkas, kas darbojas līdzīgi šiem ierobežotajiem ievades tipiem; tas ļauj lietotājiem izvēlēties no nolaižamā saraksta.
Izmantojiet HTML5 validācijas atribūtus
Semantisko ievades veidu izmantošana nosaka noteiktus ierobežojumus tam, ko lietotāji drīkst iesniegt, bet daudzos gadījumos mēs vēlamies iet nedaudz tālāk. Tas ir tad, kad ar validāciju saistītie atribūti no tag var palīdzēt mums.
Ar validāciju saistītie atribūti pieder pie noteiktiem ievades tipiem (tos nevar izmantot viss veidiem), uz kuriem tie nosaka papildu ierobežojumus.
1. nepieciešams
lai iegūtu pareizu ievadi ar visiem līdzekļiem
The nepieciešams
atribūts ir pazīstamākais HTML validācijas atribūts. Tas ir būla atribūts tas nozīmē to nav nekādas vērtības, mums vienkārši ir jānovieto tā iekšpusē tag, ja mēs to vēlamies izmantot:
Ja lietotājs aizmirst ievadīt vērtību vajadzīgajā ievades laukā, pārlūks atgriež kļūdas ziņojumu kas brīdina viņus aizpildīt lauku, un viņi nevar iesniegt veidlapu līdz brīdim, kad tie ir iesnieguši derīgu ievadi. Tāpēc vienmēr ir svarīgi vizuāli atzīmējiet nepieciešamos laukus.
The nepieciešams
atribūts var būt izmanto kopā ar šādiem ievades tipiem: tekstu
, Meklēt
, URL
, tel
, e-pastu
, parole
, datums
, datums Laiks
, datetime-local
, mēnesī
, nedēļu
,laiks
, numuru
, izvēles rūtiņu
, radio
, failu
, plus ar un
HTML tagi.
2. min
, maks
un solis
numuru apstiprināšanai
The min
, maks
un solis
atribūti ļauj mums ierobežojumu ievades laukiem. Tos var izmantot kopā ar diapazonā
, numuru
, datums
, mēnesī
, nedēļu
, datums Laiks
, datetime-local
, un laiks
ievades veidi.
The min
un maks
atribūti nodrošina lielisku iespēju viegli izslēgt nepamatotus datus. Piemēram, zemāk redzamais piemērs liek lietotājiem iesniegt vecumu no 18 līdz 120 gadiem.
Kad ierobežojuma validācijas algoritms sakrīt ar lietotāja ievadi, kas ir mazāka par min
, vai lielāks par maks
vērtību, tas neļauj tai sasniegt backend, un atgriež kļūdas ziņojumu.
The solis
atribūts norāda skaitlisko intervālu starp ciparu ievades lauka juridiskajām vērtībām. Piemēram, ja mēs vēlamies, lai lietotāji izvēlētos tikai no lēciena gadiem, mēs varam pievienot step = "4"
atribūtu laukam. Turpmākajā piemērā es izmantoju numuru
ievades veids, jo nav type = "gads"
HTML5.
Izmantojot iepriekš noteiktos ierobežojumus, lietotāji var izvēlēties tikai no lēciena gadiem no 1972. līdz 2016. gadam, ja viņi izmanto mazo bultiņu, kas nāk ar numuru
ievades veids. Viņi var arī ievadīt vērtību manuāli ievades laukā, bet, ja tas neatbilst ierobežojumiem, pārlūks atgriezīs kļūdas ziņojumu.
3. maksimālais garums
teksta garuma apstiprināšanai
The maksimālais garums
atribūts ļauj iestatiet maksimālo rakstzīmju garumu teksta ievades laukiem. To var izmantot kopā ar tekstu
, Meklēt
, URL
, tel
, e-pastu
un parole
ievades tipi un HTML tag.
The maksimālais garums
atribūts var būt lielisks risinājums tālruņa numuru laukiem, kuriem nevar būt vairāk par noteiktu rakstzīmju skaitu, vai kontaktu veidlapām, kur mēs nevēlamies, lai lietotāji rakstītu vairāk par noteiktu garumu.
Tālāk redzamais koda fragments parāda pēdējo piemēru, tas ierobežo lietotāja ziņas līdz 500 rakstzīmēm.
The maksimālais garums
atribūts neatgriež kļūdas ziņojumu, bet pārlūkprogramma vienkārši neļauj lietotājiem ievadīt vairāk par norādīto rakstzīmju skaitu. Tāpēc ir svarīgi, lai informēt lietotājus par ierobežojumu, pretējā gadījumā viņi nesaprot, kāpēc viņi nevar turpināt rakstīt.
4. modeli
par Regex validāciju
The modeli
atribūts ļauj mums izmantot regulāras izteiksmes mūsu ievades validācijas procesā. Regulāra izteiksme ir a iepriekš definētu rakstzīmju kopu kas veido noteiktu modeli. Mēs varam to izmantot, lai meklētu virknes, kas seko modelim, vai arī izpildītu noteiktu formātu, ko nosaka modelis.
Ar modeli
atribūts, ko mēs varam paveikt - ierobežot lietotāju iesniegt savu ievadi tādā formātā atbilst noteiktajai regulārajai izteiksmei.
The modeli
atribūtam ir daudz lietošanas gadījumu, bet tas var būt īpaši noderīgs, ja vēlamies apstipriniet paroles lauku.
Tālāk redzamais piemērs pieprasa lietotājiem ievadīt paroli, kas ir vismaz 8 rakstzīmes, un tajā ir vismaz viens burts un viens numurs (izmantotā regex avots).
Vēl dažas lietas
Šajā rakstā mēs apskatījām, kā izmantot pārlūkprogrammas piegādātā veidlapu apstiprināšana to nodrošina HTML5 vietējais ierobežojuma validācijas algoritms. Lai izveidotu pielāgotus validācijas skriptus, mums jāizmanto ierobežošanas validācijas API, kas var būt nākamais solis, lai uzlabotu veidlapu apstiprināšanas prasmes.
HTML5 veidlapas ir pieejamas, izmantojot palīgtehnoloģijas, tāpēc mums nav obligāti jāizmanto vajadzīgs
Atribūts ARIA, lai atzīmētu nepieciešamos ekrāna lasītāju ievades laukus. Tomēr joprojām var būt lietderīgi pievienot vecāku pārlūkprogrammu pieejamības atbalstu. Tas ir iespējams arī atteikties no ierobežojuma apstiprināšanas pievienojot novalidāts
Būla atribūts elementu.