05.02. Web kontrole - Osnovni elementi za interakciju
Da se podsetimo:
Forme služe za prikupljanje informacija od posetilaca stranice.
Na formi može postojati veći broj kontrola koje se zadaju odgovarajućim tagovima.
Zadatak za početak: kreirati nove fajlove: index.html i stil.css.
U stilu postaviti izgled kojntejnera u kojem radimo:
.container {
background-color: yellow;
width: 50%;
min-height: 500px;
margin: 10% auto;
padding: 10px;
}
U index.html ubaciti osnovni html kod i jedan div element klase container u kojem radimo dalje
Primere koji su u nastavku ubacujemo u formu!
Šta su to web kontrole?
Web kontrole su elementi na web stranici koji omogućavaju korisnicima interakciju s aplikacijom. Ove kontrole se koriste za unos podataka, izbor opcija, pokretanje akcija ili prikaz informacija.
Koji elementi se mogu koristiti u formi:
HTML <form> element može da sadrži jednu ili više kontrola (elemenata):
<input><label><select><textarea><button><fieldset><legend><datalist><output><option><optgroup>
Na web sajtu w3schools-a pogledajte: (LINK: HTML Form Elements)
Proučite kako su urađeni primeri za pojedine elemente (select, textarea, button, ). Pokušajte sami da uradite te primere na stranicama za vežbu i da dodate ili oduzmete pojedine opcije.
(Ako do sad niste primetili, imate dugme, ispod primera, na kojem piše "Try it Yourself »")
U okviru ove lekcije neće biti objašnjavani svi elementi, već samo navedeni primeri za neke od onih koji se najčešće koriste:
Polja za unos podataka (<input>)
Ovo je jedan od najviše korišćenih elemenata u formama. Koristi se za unos podataka od strane korisnika. Vrsta podataka koja se unosi zavisi od atributa type. Neki primeri su dati u nastavku:
| Tip | Opis |
|---|---|
<input type="text"> |
Prikazuje polje za unos jednog reda teksta |
<input type="radio"> |
Prikazuje radio dugmiće (za izbor jedne opcije od više ponuđenih) |
<input type="checkbox"> |
Prikazuje se checkbox (za izbor 0 ili više od ponuđenih opcija) |
<input type="submit"> |
Prikazuje dugme za submit (za slanje podataka iz forme) |
<input type="button"> |
Prikazuje se dugme na koje se može kliknuti |
<label for="ime">Ime:</label>
<input type="text" id="ime" name="ime">
Još jedan primer tekstualnog polja:
<input type="text" name="username" placeholder="Unesite svoje korisničko ime">
Još jedan primer lozinke (tekst je maskiran - prikazuje zvezdice umesto karaktera):
<input type="password" name="password" placeholder="Unesite lozinku">
Labela (<label>)
Element <label> se koristi za definisanje labela / zabeleški / natpisa koji mogu da se vezuju za druge elemente u formi.
Vezivanje labele za drugi element na formi ide pomoću atributa for nakon čega se navodi id elementa za koji se labela vezuje. Ako se klikne na labelu onda se, na primer, menja stanje elementa za koji je labela vezana, ili u slučaju elemenata za unos teksta se kursor postavlja na mesto gde se taj tekst unosi.
- Atribut
forpovezuje labelu sa odgovarajućim poljem pomoćuidvrednosti.
<label for="email">Email:</label>
<input type="email" id="email" name="email" required>
( Treba obratiti pažnju da for atribut za <label> treba da bude identičan atributu id elementa <input>za koji se vezuje. )
Dugmad (<button> ili <input
type="submit">)
- Služe za slanje podataka iz forme na server ili resetovanje podataka forme.
Primeri dugmadi:
<button type="submit">Pošalji</button><button type="reset">Resetuj</button>
Inače, obično dugme <button> smo do sada koristili ako nam treba dugme na koje može da se klikne, kao u sledećem primeru:
<button type="button" onclick="alert('Hello World!')">Kliknite ovde!</button>
A u nastavku je prikazano kako to izgleda u browser-u:
Napomena: Uvek navedite atribut type za button. Ako se ne navete tip dugmeta unutar forme, podrazumevaće se da je u pitanju tip submit - za slanje podataka !
Dovde smo stigli i uradili sadržaj za ovu lekciju, 05.02.
Za rad kod kuće:
Kontrola koje su navedene u nastavku su već obrađivane u okviru predmeta Web Dizajn (2. razred) pa to ostavljamo da učenici samostalno prouče.
Radio dugmad i checkbox-ovi
- Radio dugmad omogućavaju izbor samo jedne opcije, dok checkbox-ovi omogućavaju višestruki izbor:
<input type="radio" name="gender" value="male"> Muški
<input type="radio" name="gender" value="female"> Ženski
<input type="checkbox" name="agree"> Prihvatam uslove
Padajuće liste
- Koriste se za izbor jedne ili više opcija iz liste:
<select name="city">
<option value="belgrade">Beograd</option>
<option value="novisad">Novi Sad</option>
<option value="nis">Niš</option>
</select>
Tekstualna polja za više linija
- Omogućavaju unos dužih tekstova (u više redova):
<textarea name="message" rows="4" cols="50"></textarea>
**************
<select>
Element <select> se koristi za padajuće liste:
Primer:
<label for="auta">Odaberite auto:</label>
<select id="auta" name="cars">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select>
<option> definiše opciju koja može da se izabere. Ako drugačije nije navedeno, podrazumevano je da će biti odabrana prva stavka sa liste.
(Za vežbu, pogledajte i pokušajte da uradite primer na web sajtu w3schools-a: LINK
Neke dodatne opcije:
Za definisanje stavke koja je izabrana na početku, treba dodati se atribut selected u okviru opcije:
<option value="fiat" selected>Fiat</option>
(pokušajte ovo i sami da uradite na web sajtu w3schools-a: LINK
Za definisanje koliko elemenata je istovremeno vidljivo koristi se atribut size :
<label for="auta">Choose a car:</label>
<select id="auta" name="auta" size="3">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select>
(pokušajte ovo i sami da uradite na web sajtu w3schools-a: LINK
Mogućnost izbora više opcija odjednom - atribut multiple :
<label for="auta">Choose a car:</label>
<select id="auta" name="auta" size="4" multiple>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select>
(pokušajte ovo i sami da uradite na web sajtu w3schools-a: LINK
<textarea>
Koristi se za unos više linija teksta (engl. text area):
<textarea name="poruka" rows="5" cols="30">
Ana voli Milovana.
</textarea>
(pokušajte ovo i sami da uradite na web sajtu w3schools-a: LINK
rows - vidljivi broj linija teksta,
cols - vidljiva širina.
A ovako to izgleda u browser-u:
Isto tako, oblast u koju se piše tekst može da se definiše i korišćenjem CSS-a.
<textarea name="poruka" style="width:200px; height:600px;">
Idemo u Afriku ...
</textarea>
(pokušajte ovo i sami da uradite na web sajtu w3schools-a: LINK
<fieldset> i <legend>
<fieldset> element se koristi za grupisanje podataka na formi.
<legend> element definiše naslov za <fieldset>.
<form>
<fieldset>
<legend>Personalia:</legend> <label for="fname">First name:</label><br> <input type="text" id="fname" name="fname" value="John"><br> <label for="lname">Last name:</label><br>
<input type="text" id="lname" name="lname" value="Doe"><br><br>
<input type="submit" value="Submit">
</fieldset>
</form>
(pokušajte ovo i sami da uradite na web sajtu w3schools-a: LINK
Koji su to napredni koncepti koje do sada koristimo
HTML5 validacija
Savremeni pretraživači podržavaju ugrađenu validaciju pomoću atributa kao što su required, min, max, minlength, maxlength, pattern, itd.
Na primer, validacija za email polje:
<input type="email" name="email" required>
Stilizacija formi sa Bootstrap-om
Bootstrap olakšava pravljenje formi profesionalnog izgleda.
<div class="form-group">
<label for="email">Email:</label>
<input type="email" class="form-control" id="email" placeholder="Unesite email">
</div>
Vežbe:
Na sledećoj web stranici imate detaljnije objašnjeno gradivo (na našem jeziku naravno 😀 ) .
Odatle ćemo raditi primere (počev od dela 2 na toj stranici)
Kliknite na link, trebalo bi da se otvori u drugom tabu:
LINK: HTML tagovi za rad sa elementima forme
Dodatne vežbe
Zadatak 1: Kreirajte jednostavnu formu za unos imena i email adrese sa dugmetom za slanje. Dodajte HTML5 validaciju za obavezna polja.
*komentar
Zadatak 2: Proširite prethodnu formu:
-
Dodajte padajuću listu za izbor grada.
-
Dodajte radio dugmad za izbor pola.
-
Implementirajte validaciju putem HTML5 atributa.
*komentar
Napomena:
Treba naglasiti da sva INPUT polja koja ćemo pominjati nisu uvek podržana od strane svih glavnih web pregledača.
Da biste proverili da li vaš web pregledač podržava neku HTML komponentu ili web tehnologiju, posetite link https://caniuse.com i ukucajte ime tražene kontrole/tehnologije.
Spoljašnji linkovi:
Na našem jeziku:
Na engleskom jeziku:
- HTML Forms
- HTML Form Attributes
- HTML Form Elements
- Online okruženju za vežbanje (html, css, javascript i pregled rezultata): https://jsfiddle.net/