Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] Sprawdzenie wszystkich pól radio.
Forum PHP.pl > Forum > Po stronie przeglądarki
!!_:!SnAkE!:_!!
Witam, mam taki problemik, zwlaszcza, ze w JS raczkuje i o strasznie.

Mam dynamicznie generowany formularz z nieznana mi liczba pol radio. Chcialbym napisac sobie skrypcik, który niezaleznie od ilosci tych pol sprawdzi, czy uzytkownik wypelnil wszystki i jesli nie wyrzucil mu alert ze nie wypelnil wszystkiego. Probowalem roznych sposobow - nadaremnie. Prosilbym o jakas pomoc.. .z gory dziekuje i pozdrawiam smile.gif
revyag
Jak masz skonstruowane te radio ? Wybór masz między dwoma polami czy jest ich więcej ? Chodzi o to czy do wyboru określnej wartości masz zestaw składający się z dwóch, trzech lub wiecej pól.
np.
  1. tak: <input type="radio" name="radio1" value="tak" />
  2. nie: <input type="radio" name="radio1" value="nie" />
  3.  
  4. <!-----albo-------!>
  5.  
  6. tak: <input type="radio" name="radio1" value="tak" />
  7. nie: <input type="radio" name="radio1" value="nie" />
  8. nie jestem pewien: <input type="radio" name="radio1" value="nie jestem pewien" />
!!_:!SnAkE!:_!!
No wiec jest tak:
Radia wyswietlane sa w petli i wyglada to tak:

<input type="radio" name="qstn_<?=$i?>" value="1">
<input type="radio" name="qstn_<?=$i?>" value="0">

Tak wiec odpowiedzi sa tylko dwie.

Probowalem na rozne sposoby - nadaremnie. Prosilbym wielce o pomoc... Z gory dziekuje i pozdrawiam...
revyag
Zamotane to troche, ale nie mam weny dzisiaj smile.gif
Kod
<script type="text/javascript">
function check() {

    var str = '';
    
    var rds = document.getElementsByTagName("input");
    
    var radios = new Array;
    radios[0] = new Array();
    
    var j = 0;
    var k = 0;
    
    for(i = 0; i < rds.length; i++) {
        
        if(rds[i].type=="radio") {
            
            if(k > 1) {
                k = 0;
                j++;
                radios[j] = new Array();
            }
            
            radios[j][k] = rds[i];
            k++;
        }
    }
    
    for(i = 0; i < radios.length; i++) {
        if(radios[i][0].checked =='' && radios[i][1].checked =='') {
            str += radios[i][0].name +',';        
        }
    }
    
    
    if(str !='') {
        alert("Nie zaznaczono:"+str);
        return false;
    } else {
        return true;
    }
}
</script>


przykład:
  1. <form action="" method="post" onsubmit="return check()">
  2. tak: <input type="radio" name="radio1" value="tak" />
  3. nie: <input type="radio" name="radio1" value="nie" />
  4. <br /><br />
  5. tak: <input type="radio" name="radio2" value="tak" />
  6. nie: <input type="radio" name="radio2" value="nie" />
  7. <br /><br />
  8. <input type="submit" name="submit" value="go" />
  9. </form>
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.