Intro Into HTML5 -rajoituksen validointiin
Interaktiivisia sivustoja ja sovelluksia ei voi kuvitella ilman lomakkeita, joiden avulla voimme yhteyden käyttäjien kanssa, ja saada tietoja meidän on varmistettava sujuvat liiketoimet niiden kanssa. Tarvitsemme kelvollinen käyttäjän syöttö, meidän on kuitenkin hankittava se tavallaan ei häiritse käyttäjiä liikaa.
Vaikka voimme parantaa lomakkeiden käytettävyyttä älykkäästi valituilla UX-muotoilumalleilla, HTML5: llä on myös natiivi mekanismi rajoitusten validoimiseksi, jonka avulla voimme ota syöttövirheet suoraan etupäähän.
Tässä viestissä keskitymme selaimen toimittama rajoitusvalvonta, ja tarkastella, miten frontend-kehittäjät voivat suojaa kelvollinen käyttäjän syöttö HTML5: n avulla.
Miksi tarvitsemme Front-End Input Validation
Tulon validointi on kaksi päätavoitetta. Meidän sisällön on oltava:
1. Hyödyllinen
Me tarvitsemme käyttökelpoiset tiedot, joita voimme käyttää. Meidän on saatava ihmiset pääsemään realistisia tietoja oikeassa muodossa. Esimerkiksi kukaan, joka on elossa tänään, ei syntynyt 200 vuotta sitten. Tällaisten tietojen saaminen saattaa tuntua aluksi hauska, mutta pitkällä aikavälillä se on ärsyttävää, ja tietokannassamme on hyödytöntä tietoa.
2. Turvallinen
Kun viitataan turvallisuuteen, tämä tarkoittaa sitä, että meidän täytyy estää haitallisen sisällön ruiskuttaminen - tahallisesti tai vahingossa.
Hyödyllisyys (kohtuullisten tietojen saaminen) voidaan saavuttaa vain asiakkaan puolella, backend-tiimi ei voi auttaa liikaa. Saavuttaa turvallisuus, etu- ja taustakehittäjien on työskenneltävä yhdessä.
Jos frontend-kehittäjät validoivat oikein syötteen asiakkaan puolella, backend-tiimin tulee käsitellä paljon vähemmän haavoittuvuuksia. Hakkerointi (sivusto) aiheuttaa usein lisätietoja, tai tiedot väärässä muodossa. Kehittäjät voivat torjua tällaisia turvallisuusreikiä, taistella menestyksekkäästi edestä.
Esimerkiksi tämä PHP-tietoturvaopas suosittelee tarkistamaan kaiken, mitä voimme tehdä asiakkaan puolella. He korostavat etupaneelin syöttövalidoinnin tärkeyttä antamalla monia esimerkkejä, kuten:
"Syötteen validointi toimii parhaiten erittäin rajoitettujen arvojen avulla, esim. Kun jotain on oltava kokonaisluku tai aakkosnumeerinen merkkijono tai HTTP-URL-osoite."
Frontend-syötteen validoinnissa tehtävämme on asettaa kohtuullisia rajoituksia käyttäjä syöttää. HTML5: n rajoitusten validointitoiminto tarjoaa meille keinot tehdä niin.
HTML5-rajoituksen validointi
Ennen HTML5: tä Frontend-kehittäjät rajoittuivat käyttäjän syötteen validointi JavaScriptin avulla, joka oli työläs ja virhealttiinen prosessi. HTML5 on ottanut käyttöön a rajoituksen validointi algoritmi, joka toimii nykyaikaisissa selaimissa, ja tarkistaa lähetetyn syötteen pätevyyden.
Arvioinnin suorittamiseksi algoritmi käyttää tuloelementtien validointiin liittyvät attribuutit, kuten ,
, ja
. Jos haluat tietää, miten rajoitusten validointi tapahtuu selaimessa vaiheittain, tutustu tähän WhatWG-asiakirjaan.
HTML5: n rajoitusten validointitoiminnon ansiosta voimme suorittaa kaikki vakiotulojen validointitehtävät asiakkaan puolella ilman JavaScriptiä, vain HTML5: n kanssa.
Jos haluat suorittaa monimutkaisempia validointiin liittyviä tehtäviä, HTML5 tarjoaa meille a Rajoitusvalidoinnin JavaScript-API voimme käyttää mukautettujen validointisarjojen määrittämistä.
Vahvista semanttisilla syöttötyypeillä
HTML5 on ottanut käyttöön semanttiset syötetyypit että - lukuun ottamatta käyttäjälle tarkoitettujen tekijöiden elementin merkityksen ilmaisemista - voidaan myös käyttää validoi käyttäjän syöttö rajoittamalla käyttäjiä tiettyyn tulomuotoon.
Ennen HTML5: tä jo olemassa olevien syöttötyyppien lisäksiteksti
, Salasana
, Lähetä
, asettaa uudelleen
, radio
, valintaruutu
, nappi
, kätketty
), voimme myös käyttää seuraavia semanttiset HTML5-tulotyypit: sähköposti
,puh
,url
,määrä
,aika
,Treffi
,treffiaika
,datetime-local
, kuukausi
,viikko
, alue
, Hae
,väri-
.
Voimme turvallisesti käyttää HTML5-tulotyyppejä vanhemmilla selaimilla, koska ne käyttäytyvät kentässä selaimissa, jotka eivät tue niitä.
Katsotaan mitä tapahtuu, kun käyttäjä syöttää väärän syöttötyypin. Sano, että olemme luoneet sähköpostin syöttökentän, jossa on seuraava koodi:
Kun käyttäjä kirjoittaa merkkijonon, joka ei käytä sähköpostimuotoa, rajoituksen validointialgoritmi ei lähetä lomaketta, ja palauttaa virhesanoman:
Sama sääntö koskee myös muita syöttötyyppejä, esimerkiksi "url"
käyttäjät voivat lähettää vain URL-muodossa noudatettavan tulon (alkaa protokollalla, kuten http: //
tai ftp: //
).
Jotkin tulotyypit käyttävät muotoilua ei edes anna käyttäjien syöttää väärää syöttömuotoa, esimerkiksi väri-
ja alue
.
Jos käytämme väri-
syötetyyppi, käyttäjä on joko valinnut värinvalitsimesta värin tai pysyvän mustalla mustalla. Syöttökenttä on muotoilu rajoittuu, siksi se ei jätä paljon mahdollisuuksia käyttäjän virheisiin.
Kun se on tarkoituksenmukaista, kannattaa harkita sitä HTML-tunniste, joka toimii samalla tavalla kuin nämä rajoitetun mallin syöttötyypit; sen avulla käyttäjät voivat valita avattavasta luettelosta.
Käytä HTML5: n vahvistusominaisuuksia
Semanttisten syöttötyyppien käyttäminen asettaa tiettyjä rajoituksia sille, mitä käyttäjät voivat esittää, mutta monissa tapauksissa haluamme mennä hieman pidemmälle. Tämä on silloin, kun validointiin liittyvät attribuutit n tunniste voi auttaa meitä ulos.
Validointiin liittyvät attribuutit kuuluvat tiettyihin tulotyyppeihin (niitä ei voi käyttää kaikki tyyppejä), joihin ne asettavat lisää rajoituksia.
1. vaaditaan
saada kelvollinen syöttö kaikin keinoin
vaaditaan
attribuutti on tunnetuin HTML-vahvistusmäärite. Se on a boolean-määrite mikä tarkoittaa sitä ei ota mitään arvoa, meidän on vain asetettava se sisään tunniste, jos haluamme käyttää sitä:
Jos käyttäjä unohtaa syöttää arvon vaadittuun syöttökenttään, selain palauttaa virhesanoman joka varoittaa heitä täyttämään kentän, ja ne ei voi lähettää lomaketta kunnes ne ovat antaneet kelvollisen syötteen. Siksi on aina tärkeää merkitse visuaalisesti pakolliset kentät käyttäjille.
vaaditaan
määrite voi olla käytetään seuraavien syöttötyyppien kanssa: teksti
, Hae
, url
, puh
, sähköposti
, Salasana
, Treffi
, treffiaika
, datetime-local
, kuukausi
, viikko
,aika
, määrä
, valintaruutu
, radio
, tiedosto
, plus ja
HTML-tunnisteet.
2. min
, max
ja vaihe
numeron validointiin
min
, max
ja vaihe
ominaisuudet mahdollistavat asettaa rajoituksia numeron syöttökentille. Niitä voidaan käyttää yhdessä alue
, määrä
, Treffi
, kuukausi
, viikko
, treffiaika
, datetime-local
, ja aika
tulotyypit.
min
ja max
ominaisuudet tarjoavat erinomaisen tavan helposti sulkea pois kohtuuttomia tietoja. Esimerkiksi alla oleva esimerkki pakottaa käyttäjät lähettämään iän 18 ja 120 vuoden välillä.
Kun rajoituksen validointialgoritmi törmää käyttäjän syöttöön, joka on pienempi kuin min
, tai suurempi kuin max
arvo, se estää sen pääsemästä taaksepäin ja palauttaa virhesanoman.
vaihe
ominaisuus määrittää numeerisen aikavälin numeron syöttökentän oikeudellisten arvojen välillä. Jos esimerkiksi haluamme, että käyttäjät valitsevat vain harppuvuosista, voimme lisätä sen vaihe = "4"
ominaisuus kenttään. Alla olevassa esimerkissä käytin määrä
syöttötyyppi, koska ei ole type = "vuosi"
HTML5: ssä.
Ennalta asetettujen rajoitusten avulla käyttäjät voivat valita vain vuosien 1972 ja 2016 välisenä aikana, jos he käyttävät pientä nuolta, joka on mukana määrä
syötteen tyyppi. Ne voivat myös kirjoittaa arvon manuaalisesti syöttökenttään, mutta jos se ei täytä rajoituksia, selain palauttaa virhesanoman.
3. Maksimi pituus
tekstin pituuden validointia varten
Maksimi pituus
ominaisuus mahdollistaa määritä enimmäismerkin pituus tekstinsyöttökentille. Sitä voidaan käyttää yhdessä teksti
, Hae
, url
, puh
, sähköposti
ja Salasana
tulotyyppejä ja HTML-tunniste.
Maksimi pituus
määrite voi olla erinomainen ratkaisu puhelinnumeroiden kenttiin, joissa ei voi olla enemmän kuin tietty määrä merkkejä, tai yhteystietolomakkeisiin, joissa emme halua käyttäjien kirjoittavan enemmän kuin tietty pituus.
Alla oleva koodinpätkä näyttää esimerkin jälkimmäiselle, se rajoittaa käyttäjän viestejä 500 merkkiin.
Maksimi pituus
ominaisuus ei palauta virheilmoitusta, mutta selain ei yksinkertaisesti anna käyttäjien kirjoittaa enemmän kuin määritelty merkkiluku. Siksi on tärkeää ilmoittaa käyttäjille rajoituksesta, muuten he eivät ymmärrä, miksi he eivät voi jatkaa kirjoittamista.
4. kuvio
Regex-tarkistusta varten
kuvio
ominaisuus antaa meille mahdollisuuden käytä säännöllisiä lausekkeita panoksemme validointiprosessissa. Säännöllinen lauseke on a ennalta määritelty merkistö jotka muodostavat tietyn mallin. Voimme käyttää sitä joko merkkijonoa hakeneiden merkkijonojen etsimiseen tai tiettyyn kuvion määrittelemään muotoon.
Kanssa kuvio
määrite, jonka voimme tehdä jälkimmäisen - rajoittaa käyttäjiä toimittamaan tulonsa muodossa vastaa säännöllistä lauseketta.
kuvio
määritteellä on monia käyttötapoja, mutta se voi olla erityisen hyödyllinen, kun haluamme vahvista salasana-kenttä.
Alla oleva esimerkki vaatii käyttäjiä antamaan salasanan, joka on vähintään 8 merkkiä pitkä, ja sisältää vähintään yhden kirjaimen ja yhden numeron (käytetyn regexin lähde).
Muutamia asioita
Tässä artikkelissa tarkastelimme, miten voit hyödyntää selaimen toimittama lomakkeen validointi tarjoaa HTML5: n natiivi rajoitus validointialgoritmi. Kun haluat luoda mukautettuja validointiskriptejä, meidän on käytettävä Rajoitusarviointi-sovellusliittymää, joka voi olla seuraava vaihe lomakkeiden validointitaitojen jalostamisessa.
HTML5-lomakkeet ovat saatavilla aputekniikoilla, joten meidän ei tarvitse välttämättä käyttää Aria vaatiman
ARIA-määrite merkitsee näytönlukijoiden tarvittavat kentät. Voi kuitenkin olla hyödyllistä lisätä esteettömyys tukea vanhemmille selaimille. Se on myös mahdollista poista rajoitusten validointi lisäämällä novalidate
boolean attribuutti elementti.