Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] radio i przycisk submit powiazane ze soba w formularzu
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
foxmark
Witam!

Szukam sposobu aktywacji przycisku zapisz/wyslij w formularzu dopiero kiedy we WSZYSTKICH grupach radio zostanie wybrana opcja.
A dokladniej mam 58 pytan kazde z nich powiedzmy TAK , NIE , NIE DOTYCZY
Wszystkie opcje radio sa domyslnie nie zanzaczone.
Chcialbym zablokowac przycisk wyslij w formularzu do czasu kiedy w kazdym z 58 pytan zostanie zaznaczona jakas opcja niezaleznie jaka.

  1. Pyt 1.
  2. <input type="radio" name="1" value="P" id="1">
  3. <input type="radio" name="1" value="F">
  4. <input type="radio" name="1" value="na">
  5. Pyt 2
  6. <input type="radio" name="2" value="P" id="2">
  7. <input type="radio" name="2" value="F">
  8. <input type="radio" name="2" value="na">
  9. Pyt 58
  10. <input type="radio" name="58" value="P" id="58">
  11. <input type="radio" name="58" value="F">
  12. <input type="radio" name="58" value="na">
  13.  
  14. <input type="submit" name="submit" id="submit" value="Save">


Dzieki za jakiekolwiek wskazowki, przekopalem mase skryptow ale zadne nie odpowieda dokladnie moim potrzeba - wiekszosc sprawdza tylko wartosc jednego zestawo lub wyswietla wartosci.

Pozdrawiam!
kcwikla
Witam, mam pewne rozwiązanie, ale nie przetestowane i napisane na szybko:)

Zmień kod html na taki:
  1. Pyt 1.
  2. <input type="radio" name="1" value="P" class="1" onchange="active()">
  3. <input type="radio" name="1" value="F" class="1" onchange="active()">
  4. <input type="radio" name="1" value="na" class="1" onchange="active()">
  5. Pyt 58
  6. <input type="radio" name="58" value="P" class="58" onchange="active()">
  7. <input type="radio" name="58" value="F" class="58" onchange="active()">
  8. <input type="radio" name="58" value="na" class="58" onchange="active()">
  9.  
  10. <input type="submit" name="submit" id="submit" value="Save" style="display: none;">


do tego javascript

  1. function active(){
  2. var question = 58;
  3.  
  4. for( var i=1; i<=58; i++ )
  5. if( $('.'+i).attr('checked') == 'checked')
  6. question--;
  7.  
  8. if(question == 0 )
  9. $('#submit').show();
  10. }


Napewno nie jest to optymalne rozwiązanie, ale może naprowadzi Cię na jakieś lepsze.
kamil4u
[JAVASCRIPT] pobierz, plaintext
  1. <form id="form">
  2. <fieldset>
  3. <legend>Pytanie 1:</legend>
  4. <input type="radio" name="pytanie1" value="P">
  5. <input type="radio" name="pytanie1" value="F">
  6. <input type="radio" name="pytanie1" value="na">
  7. </fieldset>
  8.  
  9. <fieldset>
  10. <legend>Pytanie 2:</legend>
  11. <input type="radio" name="pytanie2" value="P">
  12. <input type="radio" name="pytanie2" value="F">
  13. <input type="radio" name="pytanie2" value="na">
  14. </fieldset>
  15.  
  16. <fieldset>
  17. <legend>Pytanie 3:</legend>
  18. <input type="radio" name="pytanie3" value="P">
  19. <input type="radio" name="pytanie3" value="F">
  20. <input type="radio" name="pytanie3" value="na">
  21. </fieldset>
  22.  
  23. <input type="submit" name="submit" id="submit" value="Save">
  24. </form>
  25.  
  26. <script>
  27. document.getElementById('form').onsubmit = function(){
  28. var fieldsets = this.getElementsByTagName('fieldset');
  29. var i, j, fieldset, radios, radio, checked;
  30. for( i=0; fieldset = fieldsets[i++]; ){
  31. radios = fieldset.getElementsByTagName('input');
  32. checked = false;
  33. for( j=0; radio = radios[j++];){
  34. if( radio.type == 'radio' && radio.checked)
  35. checked = true;
  36. }
  37. if( !checked) return false;
  38. }
  39. return true;
  40. }
  41. </script>
[JAVASCRIPT] pobierz, plaintext
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.