Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802

    Controllo radio e check di numero variabile

    Ciao a tutti,
    sono di nuovo alle prese con i miei controlli JS (prometto che in tempi futuri cercherò di approfondire e studiare meglio il linguaggio, parola di lupetto) e sta volta avrei bisogno di effettuare dei controlli su alcuni radio di cui non conosco il numero. Potrebbero essercene 2, 1 oppure 20 a secona delle impostazioni dell'utente. Come diavolo faccio?

    I radio hanno lo stesso nome ma valore differente:

    radio nomeradio value=20
    radio nomeradio value=22
    radio nomeradio value=13
    radio nomeradio value=50



    Stesso discorso per i checkbox con la differenza che questi hanno il nome variabile, stessa matrice ma con numero finale che li identifica:

    checkbox1
    checkbox2
    checkbox3
    checkboxN


    Grazie nuovamente per l'aiuto
    www.beppegrillo.it
    Il blog di Beppe!!

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    hola colde,

    allora... hai N radio e N checkbox... che tipi di controlli devi fare?

  3. #3
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    Hola Willy! Stai diventando il mio angelo custode, il mio protettore, il mio magnaccio!

    Dunque, i controlli mi servono soltanto per sapere se almeno uno degli elementi è stato selezionato e nel caso di mancata selezione, mettergli un Alert(). Semplicissimo, per chi lo sa fare
    www.beppegrillo.it
    Il blog di Beppe!!

  4. #4
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    PRECISAZIONE:

    i checkbox partono dal n°0
    quindi:
    check0
    check1
    check2
    checkN
    www.beppegrillo.it
    Il blog di Beppe!!

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    riekkime qua,

    io do per scontato che il numero dei radio sia uguale al numero dei check
    codice:
    <script language="javascript">
    function test(){
      var ff=document.NomeForm
      var rr = ff.nomeradio
      var i=0
      var almenounoR=false
      var almenounoC=false
      if(rr){
        if(rr.length){
          for(i=0;i<rr.length;i++){
            if(rr[i].checked)almenounoR=true
            if(ff.elements['check'+i].checked)almenounoC=true
          }
        }
        else{
          if(rr.checked)almenounoR=true
          if(ff.elements['check'+i].checked)almenounoC=true
        }
      }
      if(!(almenounoR && almenounoC)){
        alert('Selezionare un radio e almeno un check')
        return false
      }
    }	
    </script>
    <form name="NomeForm">
    <input type="radio" name="nomeradio" value="0">
    <input type="radio" name="nomeradio" value="1">
    <input type="radio" name="nomeradio" value="2">
    <input type="radio" name="nomeradio" value="3">
    
    
    <input type="checkbox" name="check0" value="0">
    <input type="checkbox" name="check1" value="1">
    <input type="checkbox" name="check2" value="2">
    <input type="checkbox" name="check3" value="3">
    
    
    <input type="button" value="test" onclick="test()">
    </form>

  6. #6
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    No, le cose devono essere separate, in questo caso check e radio non sono dipendenti come lo script che mi avevi fatto l'ultima volta. I check e i radio sono gli stessi ma sta volta i controlli li devo fare separatamente, non so se mi sono spiegato. :master:
    www.beppegrillo.it
    Il blog di Beppe!!

  7. #7
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    In pratica non è detto che selezionando un radio io debba selezionare per forza anche un check. In un form tra l'altro, ci sono solo i check e non i radio, quindi mi servirebbero proprio due script separati, uno per i check e l'altro per i radio. Forse adesso si capisce di più.
    www.beppegrillo.it
    Il blog di Beppe!!

  8. #8
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    una roba così allora può andare?
    codice:
    <script language="javascript">
    function testRadio(){
      var ff=document.NomeForm
      var rr = ff.nomeradio
      var almenouno=false
      if(rr){
        if(rr.length){
          for(i=0;i<rr.length;i++)
            if(rr[i].checked)almenouno=true
        }
        else if(rr.checked)almenouno=true
      }
      return almenouno
    }
    
    function testCheck(){
      var ff=document.NomeForm
      var i=0
      var almenouno=false
      var cc=ff.elements['check'+i]
      while(cc){
    	if(cc.checked)almenouno=true
    	i++
    	cc=ff.elements['check'+i]
      }
      return almenouno
    }
    </script>
    <form name="NomeForm">
    <input type="radio" name="nomeradio" value="0">
    <input type="radio" name="nomeradio" value="1">
    <input type="radio" name="nomeradio" value="2">
    
    
    <input type="checkbox" name="check0" value="0">
    <input type="checkbox" name="check1" value="1">
    <input type="checkbox" name="check2" value="2">
    <input type="checkbox" name="check3" value="3">
    <input type="checkbox" name="check4" value="4">
    
    
    <input type="button" value="test radio" onclick="alert(testRadio())">
    <input type="button" value="test check" onclick="alert(testCheck())">
    </form>

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Come hai gia` intuito, le cose sono diverse: i radio sono una collezione, i checkbox (nel tuo caso) no.

    Per i radio:
    codice:
    var rr = document.NOMEFORM.NOMERADIO;
    var ok = false;
    for(var i=0; i<rr.length; i++) {
      if(rr[i].checked) {
        ok = true;
        break;
      }
    }
    if(!ok) {
      alert("non hai selezionato alcun radio");
      return false;
    }
    //return true;
    Per i checkbox:
    codice:
    var ff = document.nomeform;
    var ok = false;
    for(var i=0; i<MAX; i++) {
      var cc = ff.elements['NOMECB'+i);
      if(cc.checked){
        ok = true;
        break;
      }
    }
    if(!ok) {
      alert("non hai selezionato alcun checkbox");
      return false;
    }
    //return true;
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    mi permetto di farti un piccolo appunto Mich_

    i radio potrebbero essere 0,1,2....N quindi bisogna controllare che esista, che ce ne sia uno solo o più di uno. Se il radio è uno solo non è più una collezione e .length non esiste.
    Per i checkbox non si sa a priori il numero MAX (anche se potrebbe impostarlo lato server).

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.