HTML & CSS za začetnike

HTML & CSS za začetnike (del 17): Obrazci (5)

Vsi videoposnetki vadnice HTML in CSS za začetnike.

Avtomatska dopolnitev je trenutno zelo priljubljena funkcija na internetu. Ko nekaj vnesemo v polje obrazca, brskalniki - če je funkcija omogočena in podprta s strani brskalnika - ponudijo seznam predlogov besed.

HTML in CSS za začetnike (del 17): Obrazci (5)

Takšne aplikacije je zdaj zelo enostavno implementirati. Za to dodelimo input-elementu atribut autocomplete.

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



Z vrednostjo on se omogoči samodejno dokončevanje za polje. Brskalnik si zdaj zapomni vrednosti, ki so bile vnešene v polje, ter jih kasneje ponudi prek seznama za izbiro. Na ta način je mogoče obrazce izpolnjevati veliko hitreje.

Včasih to obnašanje ni zaželeno pri vseh poljih. V takšnih primerih se avtomatsko dokončevanje lahko izrecno onemogoči. Za to dodelimo atributu autocomplete vrednost off.

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



Alternativno je mogoče form-elementu dodati atribut autocomplete. Glede na to, ali je tukaj uporabljena vrednost on ali off, se avtomatska dopolnitev za celoten obrazec omogoči ali onemogoči.

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



Vendar v primeru nasprotujočih si navedb znotraj obrazca se upoštevajo te.

<form autocomplete="on">
   Ime: <input type="text" name="vname" autocomplete="off" /><br />
   Priimek: <input type="text" name="nname" /><br />
   Poštna številka: <input type="text" name="plz" /><br />
   Kraj: <input type="text" name="ort" />
</form>



V tem primeru bi se avtomatska dopolnitev uporabila za vsa polja obrazca, saj je bila v začetnem form-elementu vrednost atributa autocomplete nastavljena na on. Izjema je samo polje vname, kjer je bila avtomatska dopolnitev izrecno onemogočena.

Da avtomatska dopolnitev deluje, mora to funkcijo podpirati ustrezni brskalnik in ne sme biti onemogočena. Poleg tega so v seznamu predlogov prikazane samo tiste vrednosti, ki so bile že enkrat vnešene prej.

Da lahko dejansko vplivamo na vrednosti v seznamu predlogov, je bilo s HTML5 uvedeno datalist-element. Ta element ne povzroči vidnega izhoda v brskalniku. Prek podrejenih elementov option se lahko določijo vrednosti za sezname predlogov. Primer:

<div>
Jezik:
<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>



Preko atributa list elementa input se vzpostavi logična povezava med poljem za vnos in elementom datalist. Pri tem morajo biti pri list in atributu id elementa datalist uporabljene enake vrednosti.

HTML in CSS za začetnike (del 17): Obrazci (5)

Nastavitev fokusa

Pred obremenitvijo strani je mogoče polju obrazca samodejno določiti fokus. Takšno funkcijo poznate na primer iz Googlove domače strani. Ko je ta stran obiskana, je mogoče takoj vnesti iskalni niz, ne da bi morali ročno postaviti kazalec v iskalno/vnosno polje.

HTML & CSS za začetnike (Del 17): Obrazci (5)

V HTML5 obstaja za takšne primere atribut autofocus. Ta atribut poskrbi, da obremenitev strani polju obrazca, ki je bilo opremljeno s tem, samodejno določi fokus.

Primer:

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



Brskalniki, ki ne poznajo atributa autofocus, ga preprosto prezrejo. To preziranje nima negativnih posledic (čeprav se polje potem ne osredotoči).

Preverjanje vnosov

Do sedaj vnosov v obrazce z osnovnimi sredstvi HTML ni bilo mogoče preveriti. Če smo želeli na primer preveriti, ali je uporabnik v obrazec dejansko vnesel e-poštni naslov, smo običajno morali za to uporabiti JavaScript ali PHP. V HTML5 takšne "vragolije" niso več potrebne. Ker HTML zdaj prinaša preverjanje s pomočjo odobritvenega vmesnika. In ta ima precej učinka. Zelo malo truda je zdaj mogoče vnos v obrazcih preverjati.

HTML5 vsebuje nekaj pravil, ki določajo, na kakšen način se polja preverjajo. Na primer se polja tipa email preverjajo, ali je bil vnešen e-poštni naslov z ustrezno sintakso.

url - Preverjanje URL-ja

email - Preverjanje e-poštne naslov

range - Preverjanje plavajoče številke

number - Preverjanje plavajoče številke

Da označimo polje kot obvezno polje, mu dodelimo atribut required.

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



Pole, označeno s tem, mora biti izpolnjeno, zato ne sme biti prazno.

Vendar bodite pozorni: Da se polja preverijo, morajo biti izpolnjeni določeni pogoji.

• Elementu je treba dodeliti atribut name.

• Element mora biti znotraj elementa form, torej se mora nahajati v obrazcu HTML. Lahko pa se povežete tudi z obrazcem prek atributa form.

• Element ne sme imeti atributa readonly ali disabled.

Pravilna uporaba bi bila torej takšna:

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



Tukaj bi brskalnik preveril, ali je polje izpolnjeno. Če je polje prazno in ga poskušate vseeno poslati obrazec, bi moral brskalnik zdaj prikazati sporočilo o napaki.

HTML &amp; CSS für Einsteiger (Teil 17): Formulare (5)

V tej seriji je bilo že večkrat omenjeno o vrstah polj obrazcev email, range, number, tel in url. Ta polja niso preverjena samo glede na to, ali vsebujejo vrednost, ampak tudi, ali je vnesena vrednost pravilna.

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



Pri poljih tipa email se na primer preveri, ali je vnesena vrednost dejansko veljaven e-poštni naslov. Če temu ni tako, bo brskalnik prikazal sporočilo o napaki.

HTML & CSS za začetnike (del 17): Obrazci (5)



Za izpis napake so odgovorni brskalniki.

Ne dovolite samodejnega preverjanja polj

Samodejna validacija vnosov ni vedno zaželena. Če želite preprečiti, da bi se celoten obrazec preverjal, obrazcu dodelite atribut novalidate.

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



Podobno lahko atribut formnovalidate dodamo gumbu za pošiljanje. To je na primer zanimivo, kadar hkrati s gumbom za pošiljanje ponujate gumb za shranjevanje obrazca.

<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>



V tem primeru se obrazec validira samo prek prvega gumba za pošiljanje. Druga dva sta namenjena shranjevanju in odjavi. Validacija v teh primerih ni potrebna.