owned
24.08.2009, 21:29:31
Witam!
Jak pogodzić action='.php' z onSubmit ? Można zrobić tak aby najpierw sprawdzone zostały pola przez JS a następnie potem wywołane zostało action='.php' ? Co jeśli użytkownik ma wyłączoną obsługę JS. Prosze o pomoc
Pawel_W
24.08.2009, 21:33:54
onsubmit="return validateForm(this)"
jeżeli js wyłączony, a jeżeli nie to wykona się funkcja
w funkcji dajesz return true; jeżeli jest poprawny, jeżeli nie to return false
vokiel
24.08.2009, 21:39:12
Zasadniczo walidacja formularzy może odbywać się dwojako - po stronie przeglądarki -js oraz po stronie serwera - skrypt php.
Polecam wykonywanie jej w obu przypadkach. Sprawdzanie po stronie przeglądarki daje wiele plusów, jednak można w nią zaingerować, zatem koniecznością jest tak czy inaczej sprawdzenie poprawności po stronie skryptu php.
Domyślnie najpierw wywołuje się sprawdzanie po stronie przeglądarki (ponieważ strona działa właśnie w przeglądarce), następnie przeglądarka (po poprawnym zweryfikowaniu formularza) przesyła go do skryptu php, w którym następuje ponowne sprawdzenie.
Jeśli użytkownik ma wyłączone js (2-3% ?) to sprawdzanie po stronie przeglądarki nie zadziała, dlatego tak ważne jest sprawdzanie po stronie serwera - tego nie da się od strony użytkownika wyłączyć.
Pozdrawiam
owned
24.08.2009, 21:40:52
Cytat(Pawel_W @ 24.08.2009, 22:33:54 )

onsubmit="return validateForm(this)"
jeżeli js wyłączony, a jeżeli nie to wykona się funkcja
w funkcji dajesz return true; jeżeli jest poprawny, jeżeli nie to return false

To action='.php' tez mam zamieszczać ? Mógłbyś mi pokazać strukturę <form> ? Prosiłbym o wyjaśnienie tej funkcji na jakimś przykładzie.
Pawel_W
24.08.2009, 22:00:03
robisz normalny formularz i po prostu doklejasz do niego zdarzenie onsubmit
owned
24.08.2009, 22:06:24
Cytat(Pawel_W @ 24.08.2009, 22:33:54 )

w funkcji dajesz return true; jeżeli jest poprawny, jeżeli nie to return false

Chodzi mi o przykład tego sposobu
Pawel_W
24.08.2009, 22:18:06
<script type="text/javascript"> function validateForm(obj)
{
if(costam)
return true;
else
return false;
}
<form action="jakis_plik" method="post" onsubmit="return validateForm(this)"> // formularz
if(costam) to oczywiście jakiś warunek, zależy co chcesz sprawdzać
owned
24.08.2009, 22:35:10
Nie działa. Przeładowana jest strona do action='.php' i tyle.
Pawel_W
24.08.2009, 22:36:03
no to może pokażesz swój skrypt?
owned
24.08.2009, 22:47:06
[PHP]
pobierz,
plaintext - <script type="text/javascript">
- var imie_nazwisko = document.forms ['formularz'].imie_nazwisko.value;
- //no i tutaj Twoja funkcja gdzie if(imie_nazwisko==''){...
- </script>
- <form name="formularz" action="index.php" method="post" onsubmit="return validateForm(this);">
- <input type="text" name="imie_nazwisko"/>
- <input type="submit" value="Wyślij"/>
- </form>
[PHP]
pobierz,
plaintext Chcę po prostu sprawdzić java scriptem przed przeładowaniem strony do index.php, czy pole jest puste.
vokiel
25.08.2009, 09:20:09
<script type="text/javascript"> function validateForm(form){
var imie_nazwisko = document.forms ['formularz'].imie_nazwisko.value;
if (imie_nazwisko.length<5){
return false;
}else{
return true;
}
}
<form name="formularz" action="index.php" method="post" onsubmit="return validateForm(this);"> <input type="text" name="imie_nazwisko"/> <input type="submit" value="Wyślij"/>