Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: aktywacja submita po zaznaczeniu mini. 1 checkbox'a
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
kaszanka
Hi,

Mam sobie aktualnie formularz z checkboxów:
  1. <?php
  2. <input type="checkbox" class="checkbox" name="domain_1" id="domain_1" onclick="if (this.checked == true) LiczKoszt('.$cena_r_pl.'); else LiczKoszt(-'.$cena_r_pl.');"/>
  3. <input type="checkbox" class="checkbox" name="domain_2" id="domain_2" onclick="if (this.checked == true) LiczKoszt('.$cena_r_pl.'); else LiczKoszt(-'.$cena_r_pl.');"/>
  4. <input type="checkbox" class="checkbox" name="domain_3" id="domain_3" onclick="if (this.checked == true) LiczKoszt('.$cena_r_pl.'); else LiczKoszt(-'.$cena_r_pl.');"/>
  5. ?>

oraz submita który wysyła dane:
  1. <?php
  2. <input type="submit" name="submit2" id="submit2" value="Dalej" class="buttons2" size="30" onclick="javascript: if(document.getElementById('domain_1').checked==true) { location.href='?go=link.php'; } else { alert('Proszę zaznaczyć minimum 1 opcję.');} return false; "/>
  3. ?>

I chcę zrobić teraz coś takiego, iż aby submit2 mógł wykonać czynność musi być zaznaczony minimum jeden checkbox (z trzech powyżej).
Obecnie udało mi się to zrobić tylko dla wersji z jednym chexboxem (domain_1) ale jak zrobić to dla wszystkich nie bardzo wiem.
I jak widać w submit2 mam zrobione przeniesienie do link.php lub alert ale czy da się zrobić aby submit2 stawał się po prostu DISABLED lub ENABLED gdy zaznaczony jest minimum 1 checkbox?
paziek
  1. var checked=0;
  2. function checks(a) {
  3. if(a) checked++;
  4. else checked--;
  5. if(checked>0) document.getElementById('submit2').disabled=false;
  6. else document.getElementById('submit2').disabled=true;
  7. }
  8.  
  9. <input type="checkbox" onclick="if(this.checked == true) {LiczKoszt('.$cena_r_pl.');checks(true);} else {LiczKoszt(-'.$cena_r_pl.');checks(false);}" />


Można tak smile.gif

No i na submicie powinien być atrybut disabled="true", aby domyślnie był wyłączony.
Dobrze jest też sprawdzić przy ładowaniu się strony, czy interesujące checkboxy są zaznaczone, czy też nie - przy przeładowaniu strony zostają one tak jak były przed przeładowaniem (z pamięci to akurat piszę).
  1. var inputs = document.forms.jakis_formularz.inputs; //nie jestem pewien co do składni, jak by co to document.getElementsByTagName('input') napewno zadziała.
  2. var x=inputs.length;
  3. for(var i=0;x>i;i++) {
  4. if(inputs[i].type=='checkbox' && inputs[i].checked==true) checked++;
  5. }
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.