Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Podsumowanie walidacji - inny sposób
Forum PHP.pl > Forum > Przedszkole
thomson89
Witam!

Mam taki kodzik do prostego walidowania formularza. Niestety, takie rozwiązanie ma jeden zasadniczy błąd - przy każdej zmianie, nawet na lepsze do kontrolki dolicza się liczba. Gdy zmienimy to na złą wartość liczba się odejmie ale o jeden a wcześniej mogła ona być dodana np. 3 razy. Jak to poprawić? Albo jaki jest inny sposób podsumowania walidacji, nie dopuszczając do wysłania formularza?

[JAVASCRIPT] pobierz, plaintext
  1. var kontrolka = 0;
  2.  
  3. $("#nazwa").blur(function() {
  4. $("#wait1").attr("src", "../images/load.gif");
  5. var nazwa = $('#nazwa').val()
  6.  
  7. $.post("moduly/produkty/sprawdz.php", { nazwa: nazwa },
  8. function(result){
  9. if(result = 'ok' && nazwa.length > 5 ){
  10. $('#wait1').attr("src", "../images/ok.png");
  11. kontrolka += 1;
  12. } else {
  13. $('#wait1').attr("src", "../images/no.png");
  14. kontrolka -= 1;
  15. }
  16. blokada();
  17. });
  18. })
  19.  
  20. $("#cena").blur(function() {
  21. var cena = $('#cena').val();
  22. cena = cena.replace(',', '.');
  23. $("#cena").val(cena);
  24. $('#wait2').attr("src", "../images/ok.png");
  25. kontrolka += 1;
  26. });
  27.  
  28. var czytnik = 0;
  29.  
  30. $("#ilosc_sz").blur(function() {
  31. var ilosc_sz = $('#ilosc_sz').val();
  32. if(ilosc_sz.length != 0){
  33. czytnik += 1;
  34. kontrolka += 1;
  35. } else {
  36. czytnik -= 1;
  37. kontrolka -= 1;
  38. }
  39. zmien();
  40. });
  41.  
  42. $("#maks_il").blur(function() {
  43. var maks_il = $('#maks_il').val();
  44. if(maks_il.length != 0){
  45. czytnik += 1;
  46. kontrolka += 1;
  47. } else {
  48. czytnik -= 1;
  49. kontrolka -= 1;
  50. }
  51. zmien();
  52. });
  53.  
  54. function zmien ()
  55. {
  56. if(czytnik == 2)
  57. $('#wait3').attr("src", "../images/ok.png");
  58.  
  59. else
  60. $('#wait3').attr("src", "../images/no.png");
  61.  
  62. blokada();
  63. }
  64.  
  65. $("#dostepnosc").change(function() {
  66. var dostepnosc = $('#dostepnosc').val();
  67. if(dostepnosc != 'puste'){
  68. $('#wait4').attr("src", "../images/ok.png");
  69. kontrolka += 1;
  70. } else {
  71. $('#wait4').attr("src", "../images/no.png");
  72. kontrolka -= 1;
  73. }
  74. blokada();
  75. });
  76.  
  77. $("#kategoria").change(function() {
  78. var kategoria = $('#kategoria').val();
  79. if(kategoria != 'puste'){
  80. $('#wait5').attr("src", "../images/ok.png");
  81. kontrolka += 1;
  82. } else {
  83. $('#wait5').attr("src", "../images/no.png");
  84. kontrolka -= 1;
  85. }
  86. blokada();
  87. });
  88.  
  89. $("#opcje_przesylki").change(function() {
  90. var opcje_przesylki = $('#opcje_przesylki').val();
  91. if(opcje_przesylki != 'puste'){
  92. $('#wait6').attr("src", "../images/ok.png");
  93. kontrolka += 1;
  94. } else {
  95. $('#wait6').attr("src", "../images/no.png");
  96. kontrolka -= 1;
  97. }
  98. blokada();
  99. });
  100.  
  101. $("#opcje_platnosci").change(function() {
  102. var opcje_platnosci = $('#opcje_platnosci').val();
  103. if(opcje_platnosci != 'puste'){
  104. $('#wait7').attr("src", "../images/ok.png");
  105. kontrolka += 1;
  106. } else {
  107. $('#wait7').attr("src", "../images/no.png");
  108. kontrolka -= 1;
  109. }
  110. blokada();
  111. });
  112.  
  113. $("#tagi").blur(function() {
  114. var tagi = $('#tagi').val();
  115. if(tagi.length != 0){
  116. $('#wait8').attr("src", "../images/ok.png");
  117. kontrolka += 1;
  118. } else {
  119. $('#wait8').attr("src", "../images/no.png");
  120. kontrolka -= 1;
  121. }
  122. blokada();
  123. });
  124.  
  125. function blokada ()
  126. {
  127. alert(kontrolka);
  128. if(kontrolka >= 9)
  129. $('#submit').html('<input class="submit" type="submit" value="Dodaj &rsaquo;">');
  130.  
  131. else
  132. $('#submit').html('Niektóre pola nie zostały uzupełnione.');
  133. }
[JAVASCRIPT] pobierz, plaintext
kamil4u
Mam na szybko takie pomysły:
- zamiast bawić się w kontrolki, spr tylko obrazki
- przy każdej zmianie sprawdzaj wszystkie pola
- użyj zmiennych logicznych i operuj na nich
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.