HTML & CSS pradedantiesiems.

HTML ir CSS pradedantiesiems (17 dalis): Formos (5)

Visi pamokos vaizdo įrašai HTML ir CSS pradedantiesiems

Automatinio užpildymo funkcija dabar yra labai mėgstama savybė internete. Įvesdami kažką į formos laukelį, naršyklės siūlo žodžių pasiūlymų sąrašą, jei ši funkcija yra įjungta ir palaikoma naršyklės.

HTML ir CSS pradedantiesiems (17 dalis): Formos (5)

Tokius taikymus dabar labai lengva įgyvendinti. Tam tiesiog priskiriame input elementui atributą autocomplete.

<input type="text" autocomplete="on" />



Reikšme on šis automatinis užpildymas laukelyje įjungiamas. Nuo šiol naršyklė įsimena įvestas vertes į laukelį ir vėliau siūlo jas iš sąrašo. Šitaip formos užpildymas tampa gerokai greitesnis.

Tačiau šis elgesys nėra norimas visiems laukeliams. Tokiais atvejais automatinis užpildymas gali būti aiškiai išjungiamas. Tam tiesiog priskiriame atributui autocomplete reikšmę off.

<input type="text" autocomplete="off" />



Alternatyviai, galima pridėti atributą autocomplete ir form elementui. Jei čia naudojama reikšmė on arba off, automatinis užpildymas funkcija bus aktyvuota arba deaktyvuota visai formai.

<form autocomplete="on">
..
</form>



Tačiau, jei formoje nurodyti priešingi duomenys, juos bus laikomasi.

<form autocomplete="on">
   Vardas: <input type="text" name="vname" autocomplete="off" /><br />
   Pavardė: <input type="text" name="nname" /><br />
   Pašto kodas: <input type="text" name="plz" /><br />
   Miestas: <input type="text" name="ort" />
</form>



Šiame pavyzdyje automatinis užpildymas būtų taikomas visiems formos laukeliams, nes įvestoje įvedimo formoje form elemento atributas autocomplete buvo nustatytas į on. Išimtis yra tik vname laukelis. Čia automatinė užpildymo funkcija buvo aiškiai išjungta.

Automatinio užpildymo veikimui reikia, kad ši funkcija būtų palaikoma atitinkama naršyklės ir nebūtų išjungta. Be to, pasiūlymų sąraše bus rodomos tik tokios vertės, kurios buvo įvestos anksčiau.

Kad būtų galima tikrai turėti įtaką pasiūlymų sąraše esančioms vertėms, HTML5 buvo pristatytas datalist elementas. Šis elementas naršyklėje nieko nerodo. Per įdėtus option elementus galima apibrėžti vertes pasiūlymų sąrašams. Pavyzdys:

<div>
Kalba:
<br />
<input type="text" autocomplete="on" list="sprache" />
</div>
<datalist id="sprache">
   <option value="HTML5"></option>
   <option value="XHTML"></option>
   <option value="PHP"></option>
   <option value="JavaScript"></option>
</datalist>



Per list atributą input elementui yra sukuriamas loginis ryšys tarp įvedimo laukelio ir datalist elemento. Tam list ir id atributuose datalist elementui naudojamos tos pačios reikšmės.

HTML & CSS pradedantiesiems (dalis 17): Formos (5)

Nustatyti fokusą

Į formos laukelį galima automatiškai priskirti fokusą, kai puslapis yra užkraunamas. Pavyzdžiui, šią funkciją galite pažinti iš „Google“ pradinio puslapio. Užkraunant šį puslapį, galite nedelsdami įvesti paieškos terminą, nereikia rankiniu būdu pristatyti rodiklio į paieškos įvedimo laukelį.

HTML ir CSS pradedantiesiems (17 dalis): Formos (5)

HTML5 turi autofocus atributą tokiais atvejais. Šis atributas užtikrina, kad į formos laukelį, su kuriuo jis susietas, fokusas automatiškai priskiriamas užkraunant puslapį.

Pavyzdys:

<form>
  <input name="suchfeld" autofocus="autofocus" />
  <input type="submit" value="Suche" />
</form>



Naršyklės, kurios nežino autofocus atributo, jį tiesiog ignoruos. Šis ignoravimas neturi neigiamų padarinių. (Tačiau tuomet laukelis, žinoma, nebus fokusuotas).

Ivestys tikrinti

Iki šiol, HTML standartiniais būdais formos įvesties negalėjo būti patikrintos. Norint patikrinti, ar naudotojas tikrai įvedė elektroninio pašto adresą į formos laukelį, paprastai naudojama „JavaScript“ arba „PHP“ grįžtamasis ryšys. HTML5 šios "pamainos" nebėra būtinos. Nuo šiol HTML turi patvirtinimo API. Ir jis tikrai veiksmingas. Labai nedaug pastangų padeda patikrinti formos įvestį.

HTML5 turi kai kuriuos taisykles, kurios apibrėžia, kaip laukai yra tikrinami. Pvz., įvedimo laukeliai tipo email tikrinami, ar įvestas sintaksiškai teisingas el. pašto adresas.

url - Tinklo adreso tikrinimas

email - El. pašto adreso tikrinimas

range - Srauto tikrinimas

number - Srauto tikrinimas

Norint pažymėti lauką kaip privalomą, jam suteikiamas atributas required.

<input id="vname" name="vname" type="text" required="required" />



Laukas, pažymėtas šia žyme, turi būti užpildytas, todėl negali būti tuščias.

Tačiau atkreipkite dėmesį: kad validuoti laukus, turi būti įvykdyti tam tikri reikalavimai.

• Elementui turi būti priskirtas atributas name.

• Elementas turi būti įterptas į form elementą, t.y. jis turi būti HTML formoje. Alternatyviai tai galima padaryti priskiriant ryšį su formos atributu form.

• Elementas negali turėti nei atributo readonly, nei disabled.

Taigi teisingas naudojimas atrodytų taip:

<form action="form.php">
    <input id="vname" name="vname" type="text" required="required" />
    <input type="submit" />
 </form>



Čia naršyklė patikrintų, ar laukas buvo užpildytas. Jei laukas yra tuščias ir vis tiek bandote siųsti formą, dabar naršyklė turėtų pateikti klaidos pranešimą.

HTML & CSS pradedantiesiems (Dalis 17): Formos (5)

email, range, number, tel ir url. Šie laukai ne tik tikrina, ar jie turi reikšmę, bet ir ar įvesta reikšmė teisinga.

<form action="form.php">
    <input id="email" name="email" type="email" />
    <input type="submit" />
 </form>



Taigi, laukams, turintiems tipą email, pavyzdžiui, patikrinama, ar įvesta reikšmė iš tikrųjų yra sintaksiškai teisingas el. pašto adresas. Jei to nėra, naršyklė pateiktų klaidos pranešimą.

HTML ir CSS pradedantiesiems (17 dalis): Formos (5)



Už klaidos pranešimų išvedimą atsakingos naršyklės.

Laukus automatiškai patikrinti neleisti

Ne visais atvejais norima automatiškai validuoti įvaizdžius. Jei norite sustabdyti visos formos validavimą, priskiriate pirminiam form elementui atributą novalidate.

<form action="form.php" novalidate>
    <input id="email" name="email" type="email" />
    <input type="submit" />
 </form>



Alternatyviai, novalidate atributas gali būti pridėtas prie Siųsti mygtuko. Tai būtų naudinga, pavyzdžiui, jei kartu su Siųsti mygtuku siūlomas formos laikymo mygtukas.

<form action="form.cgi" method="post">
    <input id="email" name="email" type="email" />
    <input type="submit" name="submit" value="Senden" />
    <input type="submit" 
    formnovalidate="formnovalidate"  value="Speichern" />
    <input type="submit" 
    formnovalidate="formnovalidate" value="Ausloggen" />
 </form>



Šiuo atveju, forma bus patikrinama tik naudojant pirmąjį Siųsti mygtuką. Kiti du yra skirti formos saugojimui ir atsijungimui. Validacija šiais atvejais nėra būtina.