Formularze HTML są kluczowym elementem stron internetowych umożliwiającym interakcję z użytkownikami. JavaScript pozwala na dynamiczną obsługę danych z formularzy – od ich odczytywania po modyfikowanie wartości i właściwości pól.
Przechwytywanie danych z formularza
Rozważmy formularz zawierający różne typy pól:
<form name='formularz'>
<input type='text' name='tekst' onkeyup="przeslij()"><br>
<input type="checkbox" name="zaznacz" onchange="przeslij()"><br>
<input type="radio" name="wybierz" value="opcja1" onchange="przeslij()"><br>
<input type="radio" name="wybierz" value="opcja2" onchange="przeslij()"><br>
<select name='lista' onchange="przeslij()">
<option>Pierwsza</option>
<option>Druga</option>
</select><br>
<textarea name="pole" onkeyup="przeslij()">Pole tekstowe</textarea>
</form>
<div id="wynik"></div>
Funkcja odczytująca dane
function przeslij(){
var tekst = document.forms["formularz"].tekst.value;
var zaznacz = document.forms.formularz.elements["zaznacz"].checked ? "tak" : "nie";
var wybierz = "";
for(var i=0; i<document.forms.formularz.wybierz.length; i++){
if(document.forms.formularz.wybierz[i].checked) wybierz = document.forms.formularz.wybierz[i].value;
}
var lista = document.forms.formularz.elements["lista"].value;
var pole = document.forms.formularz.pole.value;
document.getElementById("wynik").innerHTML = tekst + " | zaznaczone: " + zaznacz + " | wybrano: " + wybierz + " | z listy: " + lista + " | pole tekstowe: " + pole;
}
-
Pole tekstowe – odczytujemy przez właściwość
.value. -
Checkbox – odczytujemy właściwością
.checked(zwracatruelubfalse). -
Radio – używamy pętli, by sprawdzić, które pole jest zaznaczone.
-
Select oraz textarea – podobnie jak pole tekstowe (
.value).
Dynamiczne modyfikowanie wartości formularza
JavaScript pozwala również dynamicznie zmieniać właściwości pól formularza:
<form name='formularz2'>
<label>Imię: </label><input type='text' name='imie'><br>
<label>Zablokowane: </label><input type="checkbox" name="przelacznik" onchange="onoff()"><br>
<label>Ustaw Adam: </label><input type="checkbox" name="konkret" onchange="ustaw()"><br>
</form>
Funkcje modyfikujące pola formularza
function onoff(){
document.formularz2.imie.disabled = document.forms.formularz2.przelacznik.checked;
}
function ustaw(){
if(document.forms.formularz2.konkret.checked ){
document.formularz2.imie.value = "Adam";
document.formularz2.imie.disabled = true;
document.forms.formularz2.przelacznik.checked = true;
}else{
document.formularz2.imie.value = "";
document.formularz2.imie.disabled = false;
document.forms.formularz2.przelacznik.checked = false;
}
}
-
.disabled– blokuje pole formularza, uniemożliwiając interakcję. -
.readonly– sprawia, że pole formularza jest tylko do odczytu (użytkownik nie może edytować).