- użytkownik zostanie poinformowany o niewłaściwym wypełnieniu formularza jeszcze przed jego wysłaniem, co pozwoli mu dokonać korekty bez konieczności przeładowania strony
- korzystanie z javascriptów obciąża komputer użytkownika a nie serwer
- witryna zyskuje na atrakcyjności ponieważ jest bardziej przyjazna użytkownikowi
<script>
function checker(form)
//sprawdzenie czy wszystkie sš uzupełnione
for (var i=0; i< form.elements.length; i++)
if (form.elements[i].value=='')
if (form.elements[i].name!='')
{
document.getElementById('valid').innerHTML="W formularzu pozostaly niewypełnione pola!";
return false;
}
//sprawdzenie czy przykładowe hasła do siebie pasujš
if (document.getElementById('pass1').value != document.getElementById('pass2').value)
{
document.getElementById('valid').innerHTML="Hasla nie pasuja do siebie";
return false;
}
return true;
}
</script>
Zasada działania jest bardzo prosta i uniwersalna; skrypt sprawdza kolejno wszystkie pola w pętli, nie musi mieć zatem podanej nazwy elementów co powoduje, że skrypt ten jest w stanie obsłużyć każdy formularz pod, który zostanie 'podpięty' bez względu na strukturę owego formularza. Błąd zostaje zwrócony do diva o id='valid' jakoże stosowane alertów w javacriptach jest miemodne i żadko stosowane w szanujących się witrynach.
W ramach testu skrypt został 'podpięty' do właściwości onSubmit następującej formy:
<div id='valid' style='color: red;'></div>
<div>
<form id='myForm' onSubmit='return checker(this);' action="" method="post" ENCTYPE="multipart/form-data">
<div>pole1</div>
<div><input name='pole1' type='text' size='10'/></div>
<div>pole2</div>
<div><input name='pole2' type='text' size='10'/></div>
<div>pole3</div>
<div><input name='pole3' type='text' size='10'/></div>
<div>hasło</div>
<div><input name='pass1' id='pass1' type='password' size='10'/></div>
<div>powtórz hasło</div>
<div><input name='pass2' id='pass2' type='password' size='10'/></div>
<div>select</div>
<div>
<select name='pole4'>
<option selected='selected' value='True'>tak</option>
<option value='False'>nie</option>
</select>
<div><input type='submit' value='sprawdz'></div>
</div>
</form>
</div>
Brak komentarzy:
Prześlij komentarz