HTML

Uvod
XHTML 1.1
Elementi

Obrazci

Obrazec v HTML opišemo z elementom form. Med njegove najpomembnejše lastnosti spadajo method, ki določa način prenosa podatkov do strežnika (možni vrednosti sta get in post), enctype določa način kodiranja podatkov, action pa naslov programa (spletne strani), ki bo obdelal v obrazec vnešene podatke.

<form method="..." enctype="..." action="...">
...
</form>

Opis obrazca

Pri sestavljanju obrazca imamo na voljo različna polja, ki jih lahko uporabimo. Če želimo vrednost polja po kliku na gumb prenesti na strežnik, moramo polje poimenovati (ime določimo z lastnostjo name).

polje za vnos kratkega besedila:

To je najbolj pogosto polje v obrazcih. Namenjenu je vnosu kratkega (enovrstičnega) besedila. Z lastnostjo size lahko določimo širino polja v znakih, z lastnostjo maxlength pa omejimo število znakov, ki jih lahko vpišemo v to polje. Lastnost value določa začetno vrednost polja (besedilo, ki je že na začetku vpisano v to polje).

<input type="text" name="..." size="..." maxlength="..." value="..." />
polje za vnos gesla:

To polje je zelo podobno polju za vnos kratkega besedila, edina razlika je, da znakov, ki jih vnašamo, ne vidimo (namesto njih se prikazujejo zvezdice ali krogci, odvisno od operacijskega sistema).

<input type="password" name="..." size="..." maxlength="..." value="..." />
polja za izbiranje ene izmed več vrednosti:

Polja te vrste večkrat imenujemo tudi radijski gumbi. Uporabljamo jih, kadar moramo izbrati največ eno izmed več možnih vrednosti. Vsako polje je lahko vklopljeno ali izklopljeno, pri čemer je vklopljeno lahko največ eno polje v skupini. Ko vklopimo drugo polje, se izklopi tisto, ki je bilo prej vklopljeno. Vsa polja v skupini morajo imeti enako ime. Ko končamo z vnosom podatkov v obrazec, se na strežnik prenese vrednost vklopljenega polja (vrednost, ki jo določimo z lastnostjo value). Z lastnostjo checked (ta je brez vrednosti) lahko zahtevamo, naj bo polje že na začetku vklopljeno.

<input type="radio" name="..." value="..." checked="checked" />
polja za izbiro več vrednosti:

Podobno kot pri radijskih gumbih lahko ustvarimo tudi skupino gumbov za izbiro vrednosti, ki pa se med seboj ne izklapljajo. Velikokrat je v skupini samo en takšen gumb. Ko končamo z vnosom podatkov v obrazec, se na strežnik prenesejo vrednosti vseh vklopljenih polj.

<input type="checkbox" name="..." value="..." checked="checked" />
polje za izbiranje ene izmed več vrednosti iz seznama:

Polje te vrste lahko uporabljamo namesto skupine radijskih gumbov. Polje je sestavljeno iz seznama opcij, kjer je vsaka opcija enakovredna enemu radijskemu gumbu. Vrednost, ki jo dobi strežnik, ko končamo z vnosom podatkov, določimo z lastnostjo value pri vsaki opciji posebej (strežnik dobi vrednost izbrane opcije). Z lastnostjo selected lahko določimo, katera opcija bo izbrana na začetku. Vsebina elementa option, je besedilo, ki se prikaže v seznamu možnosti. To besedilo je tudi vrednost opcije, kadar vrednosti opcije z lastnostjo value ne predpišemo. Lastnost size določa, koliko opcij želimo videti naenkrat v seznamu možnosti. Če je opcij več, se ob strani prikaže drsnik.

<select name="..." size="...">
   <option value="..." selected="selected">...</option>
   ...
</select>
polje za izbiranje več vrednosti iz seznama:

Polje te vrste lahko uporabljamo namesto skupine gumbov za izbiro. Polje je sestavljeno iz seznama opcij, kjer je vsaka opcija enakovredna enemu gumbu. Polje sestavimo podobno, kot polje za izbiro ene izmed več vrednosti iz seznama, le da dodamo lastnost multiple. Ko končamo z vnosom podatkov v obrazec, se na strežnik prenesejo vrednosti vseh izbranih opcij. Več opcij izberemo s pomočjo tipk SHIFT in CTRL.

<select name="..." size="..." multiple="multiple">
   <option value="..." selected="selected">...</option>
   ...
</select>
polje za vnos daljšega besedila:

To polje uporabljamo za vnos daljšega (večvrstičnega) besedila. Z lastnostma rows in cols določimo velikost polja (število vrstic in stolpcev v znakih). Besedilo, ki bi ga želeli imeti v polju že na začetku, vpišemo kot vsebino elementa textarea.

<textarea name="..." rows="..." cols="...">
...
</textarea>
polje za izbiro datoteke:

To polje uporabimo, kadar želimo omogoči prenos datoteke na strežnik. Uporabnik bo izbral datoteko na svojem računalniku, ko bo kliknil na gumb za konec vnosa, pa se bo vsebina datoteka prenesla na strežnik. Z lastnostjo size lahko določimo širino polja, začetne vrednosti pa iz varnostnih razlogov ne moremo določiti. Ime datoteke lahko uporabnik vpiše v polje, ali pa pritisne gumb za izbiro datoteko, ki se pojavi na desni strani polja. Kadar v obrazcu uporabimo to vrsto polja, moramo lastnost method v obrazcu nastaviti na post, lastnost enctype pa na multipart/form-data.

<input type="file" name="..." size="..." />
skrito polje:

Skritega polja uporabnik ne more videti, niti mu ne more spremeniti vrednosti. Polje te vrste je uporabno za nastavitev vrednosti, ki jih želimo poslati strežniku v vsakem primeru. Vrednost skritega polja lahko spremenimo samo s pomočjo programa v enem od skriptnih jezikov, kot je JavaScript.

<input type="hidden" name="..." value="..." />
slika:

Sliko lahko uporabimo namesto gumba za konec vnosa. Ko uporabnik klikne na sliko, bodo podatki, vpisani v obrazec, poslani na strežnik, skupaj s koordinatama, kam na sliko smo kliknili (če je slika poimenovana).

<input type="image" name="..." src="..." alt="..." />
gumb:

To je gumb brez posebne vloge. Uporabimo ga lahko, kadar želimo storiti kaj posebnega, kadar bo uporabnik kliknil nanj. Lastnost value določa napis na gumbu, z lastnostjo onClick pa določimo, kaj želimo storiti ob kliku (akcijo opišemo s stavkom v programskem jeziku JavaScript).

<input type="button" value="..." onClick="..." />
gumb za konec vnosa:

Skoraj vsak obrazec naj bi imel gumb, s katerim lahko uporabnik zaključi vnos podatkov. Ko bo kliknil nanj, se odpre naslednja spletna stran, določena z lastnostjo action v obrazcu. Običajno je tam zapisano ime programa na strežniku, ki bo sprejel, obdelal in shranil podatke, ter sestavil odgovor. Lastnost value določa napis na gumbu, če pa je gumb poimenovan, se tudi ta vrednost pošlje na strežnik.

<input type="submit" name="..." value="..." />
gumb za nastavitev začetnega stanja:

Z gumbom te vrste lahko kadarkoli vzpostavimo začetno stanje vseh polj v obrazcu. Lastnost value določa napis na gumbu.

<input type="reset" value="..." />

Primer

Shrani obrazec.html
<form action="porocilo.html"><p>
Ime in priimek: <input type="text" name="ime" size="30" /><br />
Spol: <input type="radio" name="spol" value="m" /> moški
<input type="radio" name="spol" value="z" /> ženski <br />
Starost: <select name="starost">
<option value="<10"> manj kot 10 </option>
<option value="10-20"> med 10 in 20 </option>
<option value="20-30"> med 20 in 30 </option>
<option value="30<"> več kot 30 </option>
</select> <br />
Telefon: <input type="text" name="telefon" /> <br />
<input type="submit" value="  OK  " />
</p></form>

Gumbi

Poleg zgoraj omenjenih gumbov (polja tipa submit, reset, button in image) lahko uporabljamo tudi gumbe, ki jih opišemo z elementom button. Vrsto gumba v tem primeru določimo z lastnostjo type, ki ima lahko eno izmed vrednosti button, submit ali reset. Napis in/ali sliko na gumbu vpišemo kot vsebino elementa button.

<button type="button" onClick="...">...</button>
<button type="submit">...</button>
<button type="reset">...</button>

Skupine opcij

Opcije pri poljih select lahko razdelimo v več skupin. To storimo tako, da več opcij postavimo v skupino, ki jo opišemo z elementom optgroup. Posebej koristno je to pri dolgih seznamih opcij, kjer imamo več med seboj sorodnih opcij (te postavimo v isto skupino). Skupine ne morejo biti gnezdene (znotraj skupine ne moremo definirati podskupine). Z lastnostjo label določimo besedilo, ki se bo pojavilo v seznamu izbir (tega besedila ne bo možno izbrati).

<select name="..." size="...">
   <optgroup label="...">
      <option value="...">...</option>
      <option value="...">...</option>
      ...
   </optgroup>
   ...
</select>

Opisi polj

Medtem, ko nekaterim poljem v obrazcu lahko določimo opise (napisi na gumbih), drugim tega brez uporabe dodatnih elementov ne moremo. Pred polje za vnos besedila moramo sami napisati, kaj naj uporabnik vnese, za vsakim radijskim gumbom moramo sami napisati, kaj tisti gumb pomeni ... Problem je, da če uporabnik klikne na tak opis, se ne zgodi ničesar (radijski gumb lahko vklopimo samo, če kliknemo nanj). Težavo rešimo z uporabo elementa label. Uporabimo ga lahko na dva načina. Najbolje bo, da si ju pogledamo kar na primeru.

<label>Priimek: <input type="text" name="priimek" /></label>
<label for="priimek">Priimek:</label> <input type="text" name="priimek" id="priimek" />

V prvem primeru element label vsebuje opis in polje za vnos besedila. Ta način uporabe je primeren, kadar opis in polje nastopata skupaj (vmes ni nič drugega). V večini primerov pa za razmeščanje opisov in polj uporabljamo tabelo, tako da je med njima še kakšna značka za prehod v naslednjo celico ali celo vrstico tabele. V takih primerih nam preostane samo drugi način uporabe, kjer opis in polje definiramo vsakega posebej, povežemo pa ju tako, da polju damo neko oznako (definiramo lastnost id), v opisu pa se skličemo nanj (definiramo lastnost for).

Skupine polj

Pri razmeščanju polj nam bo v pomoč element fieldset, s katerim definiramo skupino polj. Skupina se obnaša kot celota, tako da jo je veliko lažje prestavljati in oblikovati. Prikaže se kot pravokotnik z robom, znotraj katerega so razmeščena vse polja te skupine. Skupina ima lahko tudi naslov, ki ga določimo z elementom legend znotraj skupine. Naslov skupine se prikaže na zgornjem robu pravokotnika.

<fieldset>
   <legend>...</legend>
   <!-- razmestitev polj -->
</fieldset>

Aktivno polje

Preden polju spremenimo vrednost, ga moramo aktivirati. Aktiviramo ga tako, da kliknimo nanj, lahko pa tudi večkrat pritisnemo tipko TAB. Pri uporabi tipke TAB se polja aktivirajo v takem vrstnem redu, kot so našteta v datoteki HTML. Lahko pa vrstni red spremenimo, če poljem definiramo lastnost tabindex. Pri vsakem polju damo tej lastnosti drugačno vrednost (celo število med 0 in 32767). Polja se aktivirajo po vrsti od tistega z najmanjšo vrednostjo do tistega z največjo vrednostjo. Izjema so polja z vrednostjo 0 in polja brez vrednosti, ki se aktivirajo na koncu v takem vrstnem redu, kot so našteta v datoteki.

Siva polja

Vsakemu polju lahko predpišemo še dve lastnosti brez vrednosti. Prva je lastnost readonly, ki onemogoči spreminjanje vrednosti polja (polje še lahko aktiviramo), druga pa je disabled, ki onemogoči tudi aktiviranje polja in pošiljanje vrednosti na strežnik.