Už se Vám stalo, že jste obdrželi ze stránek objednávku (či jiný formulář) s nevyplněnými nebo jen částečně vyplněnými údaji? Zabránit tomuto nešvaru lze například pomocí jednoduchého Javascriptu, který si popíšeme v tomto článku.

Pro lepší názornost si vytvoříme jednoduchý formulář, pomocí kterého je možné si objednat posílání zpráv na Vaši emailovou adresu (příklad je samozřejmě fiktivní).

Takto vytvořený formulář samozřejmě nezabraňuje odesílání prázdných formulářů. Proto kód doplníme o tento JavaScript:

<script language="JavaScript">
<!–
function kontrola()
{
var a = document.zpravy.email.value;
if (a==““) {
window.alert(„Před odesláním formuláře musíte vyplnit email“);
return false;
}
else return true;
}
// –>
</script>

Funkce kontrola() zjistí, zdali textové pole obsahuje nějaké údaje. V opačném případě je zobrazena upozorňující zpráva a zamezeno odeslání formuláře. Funkci kontrola() budeme volat metodou onSubmit, takže tag <form> doplníme takto:

<form method="post" action="odeslat.asp" name="zpravy" onSubmit="return kontrola();“ >

Jak si sami můžete vyzkoušet, skript zabrání odeslání prázdného formuláře. V případě, že však do textového pole vložíte nějaký řetězec (i ten nesmyslný), k odeslání dojde. Pomocí JavaScriptu však můžeme zkontrolovat např. délku řetězce, jaké znaky jsou v řetězci obsaženy apod. V našem případě je vhodné doplnit skript o kontrolu (metodou indexOf), zdali je v řetězci přítomen znak "@", který nechybí v žádné emailové adrese. Funkce kontrola2() má tuto syntaxi:

<script language="JavaScript">
<!–
function kontrola2()
{
var a = document.zpravy.email.value;
if (a.indexOf("@") == -1| a.indexOf("@") == "") {
window.alert(„Formulář je špatně vyplněn!“);
return false;
}
else return true;
}
// –>
</script>

Skript můžete dále upravovat podle svých potřeb, například zkontrolovat, zda-li znak @ není na začátku či na konci řetězce apod.

Závěr

Oproti podobným skriptům prováděných na straně serveru přináší Javascript několik výhod. Nejdůležitější je ta, že při kontrole formuláře není nutné komunikovat se serverem, kontrola se provádí přímo na počítači uživatele. Na druhou stranu lze JavaScript obejít (stačí ho vypnout), takže v opravdu důležitých případech je lépe aplikaci doplnit i o skripty prováděných na straně serveru, které jsou nezávislé na prohlížeči.

Žádný příspěvek v diskuzi

Odpovědět