Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Problem z walidacją formularza
Forum PHP.pl > Forum > Przedszkole
opmsoft
Witam,
powiedzmy mam dwa pola w formularzu
  1. <tr>
  2. <td class="content_register_left_column">
  3. E-mail <span class="red">*</span>
  4. </td>
  5. <td class="content_register_center_column">
  6. <input type="email" name="email" id="email" <?php echo "value='$email'"; ?> maxlength="64" class="input_text">
  7.  
  8. <span id="status"><?php echo $error_email; ?></span>
  9.  
  10. <p class="tip_p">Wprowadz poprawny adres - aby dokończyć rejestrację , musisz odebrać e-mail.</p>
  11. </td>
  12.  
  13. </tr>
  14.  
  15. <tr>
  16. <td class="content_register_left_column">
  17. Hasło <span class="red">*</span>
  18. </td>
  19. <td class="content_register_center_column">
  20. <input type="password" name="passwd" id="passwd" value="" maxlength="64" class="input_text">
  21.  
  22. <span id="status"><?php echo $error_passwd; ?></span>
  23.  
  24. </td>


w każdym wierszu tableki mam pole <span id="status"> .... Cały formularz jest sprawdzany za pomocją javascript . Teraz moje pytanie jak rozróżnić o które pole <span id="status"> mi chodzi podczas walidacji aby wyświetlić odpowiedni komunikat (znaczniki php służą do wyświetlania błędów podczas walidacji za pomocą php) . Walidację pisałem sam załączam kawałek kodu JS
  1. $(document).ready(function()
  2. {
  3.  
  4.  
  5. $("#email").change(function()
  6. {
  7.  
  8. var email = $("#email").val();
  9. var msgbox = $("#status");
  10.  
  11. if(email.length > 4)
  12. {
  13. var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
  14.  
  15. if(reg.test(email) == false)
  16. {
  17. $("#username").addClass("red");
  18. $("#status").html('<font color="#cc0000">nie poprawny adres email </font>');
  19. return false;
  20. }
  21. else
  22. {
  23. $("#status").html('<img src=images/wait.gif>');
  24. $.ajax({
  25. type: "POST",
  26. url: "function/check_username.php",
  27. data: "email="+ email,
  28. success: function(msg){
  29.  
  30. $("#status").ajaxComplete(function(event, request){
  31. if(msg == 'OK')
  32. {
  33. $("#email").removeClass("red");
  34.  
  35. msgbox.html('<font color="Green"> Dostępny</font>');
  36. }
  37. else
  38. {
  39. $("#email").removeClass("green");
  40. $("#email").addClass("red");
  41. msgbox.html(msg);
  42. }
  43. });
  44. }
  45. });
  46. }
  47.  
  48. }
  49. else
  50. {
  51. $("#email").addClass("red");
  52. $("#status").html('<font color="#cc0000">Za mało znaków</font>');
  53. }
  54. return false;
  55. });
  56. $("#passwd").change(function()
  57. {
  58. var passwd = $("#passwd").val();
  59. var msgbox = $("#status");
  60.  
  61. if(passwd.length > 5)
  62. {
  63. $("#passwd").removeClass("red");
  64. $("#passwd").addClass("green");
  65. $("#status").html('<font>ok</font>');
  66. }
  67. else
  68. {
  69. $("#passwd").addClass("red");
  70. $("#status").html('<font color="#cc0000">Za mało znaków</font>');
  71. }
  72.  
  73. });
  74. });


Proszę o jakąś wskazówkę bo nie bardzo jeszcze ogarniam JS.

Pozdrawiam Piotr
mortus
Według specyfikacji w dokumencie (X)HTML może być tylko jeden element o danym id. Identyfikator (id) musisz zastąpić klasą (class). Wtedy element o klasie status dla pola Email możesz uzyskać np. tak:
[JAVASCRIPT] pobierz, plaintext
  1. var email = $('#email');
  2. var email_status = email.parent().find('.status');
[JAVASCRIPT] pobierz, plaintext
opmsoft
Ok rozumiem. Tylko jak zmieniłem wszystkie statusy z id na class w pliku z walidacją dodałem
var email_status = email.parent().find('.status'); dla każdej walidacji niestety nie działa ;( Myślę że trzeba zaznaczyć jakoś w polu input że konkretny status należy do tego pola .

Dzięki za pomoc . Nie powodzenie wynikało z prostego błędu wink.gif
var email = $("#email").val();
po zmianie na
var email = $("#email")
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.