Deo zbornika Uvod u web
Kontakt forma u HTML-u
Kontakt forma (<form>
) je standardan način da posetilac pošalje podatke vlasniku sajta. Obično se sastoji od nekoliko input
polja, sa podacima koje korisnik unosi, i dugmeta za potvrdu slanja.
input
polje
Polje za unos (<input>
) služi da korisnik unese podatke. Postoji više tipova unosa, između ostalog:
- tekst (
text
) - broj (
number
) - url
- datum (
date
)
Ukoliko ne navedemo tip, podrazumeva se tekst. Veoma je bitno da svako polje ima name
atribut, preko kojeg se vrednosti šalju serveru. Validacija se uglavnom vrši preko tipa unosa, i required
atributa.
Labela (label
) se koristi koristi kao pomoćna oznaka. Ona ima ugrađenu funkcionalnost: kada se dodirne prebacuje fokus u input polje. Takođe, čitači ekrana je čitaju, što omogućava pristupačnost slepima. Labela se povezuje za input tako što joj se dodeli for
atribut, identičan id
-u input polja:
<label for="ime">Ime i prezime</label>
<input id="ime">
Polje za unos može imati i placeholder
atribut, koji pomaže posetiocima šta treba uneti.
Ostala polja
Pored standardnih polja za unos, možemo koristiti polje za prihvatanje (checkbox
) i radio
dugmad.
Za izbor jedne od više stavki koristimo padajući meni (select
).
Za unos više redova teksta, koristi se <textarea>
.
Primer: Prost obrazac
Sledeći formular ima tri polja za unos. Sva tri imaju atribut required
, što ih čini obaveznima, i name
, bez kojeg ne bi radila. Forma ima atribut action
, sa adresom prihvatne stranice, i method
, sa vrstom HTTP zahteva.
<form action="https://formspree.io/tvojmail@gmail.com" method="POST">
Ime i prezime:<br>
<input name="ime" required><br>
Email:<br>
<input name="email" type="email" required><br>
Ostavite poruku:<br>
<textarea name="poruka" cols="30" rows="10" required></textarea><br>
<button>Pošalji</button>
</form>
Ukoliko na kraju adrese u action
atributu uneseš svoj mejl, forma će raditi.
Primer: Složen obrazac
U narednom primeru koristimo daleko veći broj oznaka i atributa. Za svako polje formulara koristimo labelu, a neka polja imaju i placeholder
atribut.
<style>
label {
display: block;
margin-top: .8em;
}
</style>
<form action="https://formspree.io/tvojmail@gmail.com" method="POST">
<label for="ime">Ime i prezime *</label>
<input name="ime" id="ime" placeholder="Unesite ovde" required>
<label for="email">Email *</label>
<input type="email" name="email" id="email" required>
<label for="telefon">Telefon *</label>
<input type="tel" placeholder="+381" name="telefon" id="telefon" minlength="9" required>
<label for="sajt">Online portfolio</label>
<input type="url" placeholder="http://www.example.com" name="sajt" id="sajt">
<label for="datum">Datum rođenja</label>
<input type="date" name="datum" id="datum">
<label for="godine">Godine</label>
<input type="number" min="7" max="107" name="godine" id="godine">
<label for="usluga">Izaberite kurs</label>
<select name="usluga" id="usluga">
<option value=""></option>
<option value="1">Javascript</option>
<option value="2">Python</option>
<option value="3">C/C++</option>
<option value="4">PHP</option>
</select>
<label for="poruka">Ostavite poruku *</label>
<textarea cols="30" rows="10" name="poruka" id="poruka" required></textarea><br>
<button>Pošalji</button>
</form>