Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Problem z walidacją formularza
opmsoft
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 17.11.2010

Ostrzeżenie: (0%)
-----


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

Ten post edytował opmsoft 9.09.2011, 16:35:11
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
opmsoft
post
Post #3





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 17.11.2010

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 03:16