Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] Sprawdzanie pola textarea
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Wilu88
Witam mam taki problem. Stworzylem w JS funkcje sprawdzającą czy zostały wypełnione wsyztskie pola wygląda ona tak:

  1. echo '<script type="text/javascript">';
  2. echo 'function error(tekst)';
  3. echo '{';
  4. echo 'if (errfound) return;';
  5. echo 'window.alert(tekst);';
  6. echo 'errfound = true;';
  7. echo '}';
  8. echo 'function validate()';
  9. echo '{';
  10. echo 'errfound = false;';
  11. echo 'var bledy = "";';
  12. echo 'with (document.forms[0]) {';
  13. echo 'if (strona_tytul.value == "") bledy += "Nie podałeś tytułu. \n";';
  14. echo 'if (strona_tresc.value == "") bledy += "Podaj treść. \n";';
  15. echo 'if (strona_keyword.value == "") bledy += "Podaj słowa kluczowe.\n";';
  16. echo 'if (strona_desc.value == "") bledy += "Podaj opis.\n";';
  17. echo 'if (bledy != "") error(bledy);';
  18. echo '}';
  19. echo 'return !errfound;';
  20. echo '}';
  21. echo '</script>';


A tak wygląda formularz:

  1. <form method="post" action="administrator.php" name="formularz">
  2. <table align="center">
  3. <tr>
  4. <td><?php echo $JezykAdmin['strona_dod_tytul']; ?></td>
  5. <td align="left"><input type="text" size="35" name="strona_tytul" value=""></td>
  6. </tr>
  7. <tr>
  8. <td><?php echo $JezykAdmin['strona_dod_tresc']; ?></td>
  9. <td><textarea name="strona_tresc" cols="100" rows="18"></textarea></td>
  10. </tr>
  11. <tr>
  12. <td><?php echo $JezykAdmin['strona_dod_slowa']; ?></td>
  13. <td align="left"><input type="text" name="strona_keyword" value=""></td>
  14. </tr>
  15. <tr>
  16. <td><?php echo $JezykAdmin['strona_dod_opis']; ?></td>
  17. <td align="left"><input type="text" name="strona_desc" value=""></td>
  18. </tr>
  19. <tr>
  20. <td></td><td>
  21. <input type="hidden" name="zarzadzaj" value="strony">
  22. <input type="hidden" name="edytuj" value="edytuj_strone">
  23. <input type="hidden" name="strona_dodaj" value="Dodaj">
  24. <input type="submit" value="Dodaj" onClick="return validate();"></td>
  25. </tr>
  26. </table>
  27. </form>


Pole strona_tresc jest obiektem textarea i coś nie działa poprawnie sprawdzanie tego pola, zawsze wywala mi komunikat że jest puste. macie jakiś pomysł questionmark.gif
WebSee
Zamień kod na:
  1. echo '<script type="text/javascript">';
  2. echo 'function error(tekst)';
  3. echo '{';
  4. echo 'if (errfound) return;';
  5. echo 'window.alert(tekst);';
  6. echo 'errfound = true;';
  7. echo '}';
  8. echo 'function validate()';
  9. echo '{';
  10. echo 'errfound = false;';
  11. echo 'var bledy = "";';
  12. echo 'with (document.forms[0]) {';
  13. echo 'if (strona_tytul.value == "") bledy += "Nie podałeś tytułu. \n";';
  14. echo 'if (strona_tresc.innerHTML == "") bledy += "Podaj treść. \n";';
  15. echo 'if (strona_keyword.value == "") bledy += "Podaj słowa kluczowe.\n";';
  16. echo 'if (strona_desc.value == "") bledy += "Podaj opis.\n";';
  17. echo 'if (bledy != "") error(bledy);';
  18. echo '}';
  19. echo 'return !errfound;';
  20. echo '}';
  21. echo '</script>';


I powiedz, czy działa?
230005
U mnie działa więc winne jest pewnie idiotyczne sformatowanie kodu...
Wilu88
Kurcze neistety dalej nie działa i nie wiem co jest nie tak :/
230005
Nie dawaj tego do echo, tylko napisz normalnie. Albo echo 'i tutaj twój cały kod', albo zamknij znacznik php i napisz "na surowo". Pewnie masz tam jakieś niepotrzebne średniki i dlatego ci nie działa. I zainstaluj sobie firebuga.
Wilu88
niestety wyrzucenie poza tagi php nie pomogło, a może przyczyną tego jest zastosowanie TinyMce questionmark.gif Miał ktoś już z tym taki problem?
230005
No to zrób wszystko w jednym ciągu znaków, co już z resztą wyżej pisałem... Firebug ci żadnych błędów nie pokazuje?
WebSee
U mnie działa normalnie, sprawdzałem pod FF, Chrome oraz Operą

Najprawdopodobniej sprawdzałeś pod IE, niestety ja nie mam jak sprawdzić - Linux
Wilu88
też sprawdzam pod FF i używam firebuga i nic :/ A używasz przy tym TinyMce??

Sam kod JS jest dobry, przyczyną na pewno jest samo pole textarea, gdy między znacznikami textarea dam spację lub cokolwiek napisze w kodzie, to skrypt JS przepuszcza te pole jako poprawne, czyli tak jakby TinyMce nie zapisywał tekstu między znaczniki textarea.
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.