działy

  Redakcyjne
  News
  Software
  Hardware
  Internet
  Webmastering
  Linux
  Programowanie
  Elektronika
  Gry
  Magazyn
  Grafika
  Telefonia
  Dźwięk
  Humor
 

Partnerzy

Kliknij na link by
zobaczyć opis:
 

  World Warez Archive
  Q119
  Lomsel
  Emu Struś
  X-zin
  Comp.w.pl
  Osama
  SiteQl

@t-online

 Dostępne po połączeniu z Internetem:

  Archiwa
  Download
  Dodaj stronę
  Forum @t
  Ogłoszenia
  Bramka SMS
  Grupa dyskusyjna

 

Sponsorzy

Sponsorem nagród jest:

 

 
 
 

Obsługa błędów formularza z poziomu Javascript


Często Webmaster umieszcza na swojej stronie formularz, pojedyncze pole lub listę rozwijaną, pod którymi podpięty jest najczęściej skrypt PHP, CGI lub inny. Zadanie tych skryptów jest zazwyczaj oczywiste. Mają pobrać i przetworzyć informacje zawarte w polach formularza. Problem zazwyczaj występuje, kiedy dane wpisane są niepoprawnie lub w ogóle ich nie ma. Najczęstszym rozwiązaniem w takiej sytuacji jest sprawdzanie poprawności formularza po stronie serwera. Taki skrypt zanim przetworzy informacje, sprawdza czy ma ich komplet. Jeżeli program stwierdzi, że czegoś mu brakuje, to wysyła komunikat do przeglądarki i kończy swoją "pracę". Z punktu widzenia Webmastera wszystko wygląda ok. Ale czy zawsze?
Załóżmy, że odwiedzający ma do wypełnienia skomplikowany formularz. Taka osoba wypełnia go i wysyła dane na serwer, przy czym czeka 1-2 min. Po przesłaniu danych okazuje się, że jest błąd i wszystko trzeba zaczynać od nowa. Przy czym okazuje się, że straciliśmy już od 5 do 10 min.
Zaczynamy wszystko jeszcze raz, uzupełniamy formularz i wysyłamy. Wszystko jest ok, jesteśmy zadowoleni. Ale w sumie straciliśmy ok. 15 min, co przeliczając na taryfę TP...
Widząc ten problem może warto cofnąć się o krok i przypomnieć sobie jak cennym narzędziem może okazać się uniwersalny język obsługiwany po stronie klienta np. JavaScript.
Koncentrując się na powyższym problemie postanowiłem przedstawić kilka użytecznych funkcji, które sprawdzają poprawność charakterystycznych dla siebie elementów. I tak jeśli wszystkie pola będą zwracać TRUE, wtedy program PHP lub inny będzie przyjmował dane, a jeśli wartość będzie FALSE, JavaScript poinformuje nas o tym.

Załużmy, że wszystkie elementy będą umieszczone w polu <form name=formularz>

1. Pole tekstowe - skrypt sprawdza, czy pole nie pozostało puste.

<input type="text" name="pole1">



<script language="javascript">
function sprawdz(){
if(document.formularz.pole1.value==""){
alert("Wypełnij pole");
return false;
}
return true;
}
</script>


2. Pole e-mail - skrypt sprawdza, czy pole zawiera symbol "@".

<input type="text" name="pole2">



<script language="javascript">
function emile(){
var adres=document.formularz.pole2.value
var malpa=adres.indexOf('@');
kropka=adres.lastIndexOf('.');
if (malpa<2 || malpa>kropka){
alert("Adres e-mail wpisany niepoprawnie");
return false;
}
return true;
}
</script>

3. Pole liczbowe- ta funkcja sprawdzi, czy w tym polu znajdziemy liczbę. Pamiętać należy, że w JavaScript części ułamkowe zapisujemy po kropce, a nie po przecinku.

<input type="text" name="pole3">



<script language="javascript">
function liczba(){
var numer=document.formularz.pole3.value;
if (isNaN(numer)){
alert("Wpisz liczbę");
return false;
}
return true;
}
</script>

4. Obszar tekstowy- taka sama funkcja jak do pola tekstowego, z jedyną modyfikacją. W skrypcie zamiast pole1 należy wpisać bieżącą nazwę.

5. Lista- kolejna funkcja sprawdzająca, czy zostało zaznaczone pole w liście.

<select name="pole5">
<option>opcja1
<option>opcja2
</select>


<script language="javascript">
function lista(){
if(document.formularz.pole5.selectedIndex<0){
alert("Nie wybrałeś żadnego pola");
return false;
}
return true;
}
</script>

6. Checkbox- funkcja sprawdza, czy zostało zaznaczone pole Checkbox.

<input type="checkbox" value="" name="pole6">


<script language="javascript">
function checkbox(){
if(document.formularz.pole6.checked==false){
alert("Nie zaznaczyłeś pola");
return false;
}
return true;
}
</script>

Gotowy skrypt możemy podpiąć do przycisku "Wyślij" np. dla funkcji sprawdz():
<input type=button value=wyślij onClick="sprawdz()">


Paweł Pietrasz