Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] Walidacja formularza i wyrażenia regularne
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
ichu
Witam. Mam opracować formularz, który sprawdza czy dana liczba jest poprawną wartością w kodzie ósemkowym. Wyszło mi takie coś:
  1. <script type="text/javascript">
  2. function Sprawdz(src)
  3. {
  4. var formatLiczby = /^\w*\d?[0-7]$/g;
  5. return formatLiczby.test(src);
  6. }
  7. <form action="" method="post">
  8. <input type="text" name="dane" id="dane"><br>
  9. <input type="button" value="testuj" onClick="if (Sprawdz(document.getElementById('dane').value) ) { alert('ok'); } else { alert('błąd'); } "><br>
  10. </form>

Niby wszystko jest ok, ale do szczęścia brakuje jeszcze tego, żeby kod strony przechodził walidację.
Próbowałem to poprawić, wynik jest taki:
  1. <script type="text/javascript">
  2. function Sprawdz(dane)
  3. {
  4. var formatLiczby = /^\w*\d?[0-7]$/g;
  5. return formatLiczby.test(dane);
  6. if form.dane.value==formatLiczby
  7. { alert('ok'); } else { alert('błąd'); }
  8. }
  9. <form action="" method="post" onSubmit="Sprawdz(this.form)">
  10. <input type="text" name="dane" id="dane"><br>
  11. <input type="button" value="test kod pocztowy"><br>
  12. </form>

Ale skrypt nie działa. Bardzo proszę o wskazanie błędu w skrypcie.
Kamson
Trudno wskazać błąd w skrypcie bo cały on jest zły..
  1. w parametrze funkcji przekazujesz obiekt ( formularza ) i to błędnie winksmiley.jpg
  2. ten warunek jest z błędem składniowym pyzatym porównujesz coś co nie istnieje do ciągu znaków
  3. metoda test() zwraca true lub false wiec to wynik jej działania powinien być sprawdzany.
  4. przy błędzie formularz nie powinien być wysyłany dlatego raczej akcja onSubmit odpada a jak ja juz stosujesz to guzik który wywołuje akcje powinien być typu submit a nie tylko button.
to powinno być oki:
  1. <script type="text/javascript">
  2. function Sprawdz() {
  3. var formularz = document.testowy_formularz;
  4. var formatLiczby = /^\w*\d?[0-7]$/g;
  5. if(formatLiczby.test(formularz.dane.value)) formularz.submit();
  6. else alert('blad');
  7. }
  8. <form action="" method="post" name="testowy_formularz">
  9. <input type="text" name="dane" id="dane"><br>
  10. <input type="button" value="testuj" onclick="Sprawdz();"><br>
  11. </form>
ichu
Dziękuję, co prawda zdążyłem rozwiązać to inaczej smile.gif Wszystko działa!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.