Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: form.radio.length

  1. #1

    form.radio.length

    Salve ragazzi, ho un problema:
    ho una lista di elementi affiancati da uno stesso radio (idRadio);

    devo fare il controllo che almeno un radio si stato attivato...

    l'idea è quella di fare un for per tutti i radio e abilitare a true un flag quando trovo
    un radio attivo...

    var controllo = false;
    var idRadio = '';
    alert("DIMENSIONE:"+form.idRadio.length);
    for(i=0; i< form.idRadio.length ; i++){
    if(form.idRadio[i].checked){
    controllo = true;
    ididRadio = form.idRadio[i].value;
    }
    }

    il for parte da zero e arriva a form.idRadio.length.....mi funziona se la lista è formata da x elementi con x>1 (in tal caso ) form.idRadio.length ha valore x

    Il problema nasce nel caso in cui la lista sia formato da un solo elemento...il valore di form.idRadio.length è undefined....

    In cosa sbaglio??

    Grazie

  2. #2
    Non so se cambia qualcosa, ma prova con una sintassi un po' più standard:

    codice:
    var controllo = false
    var id_radio = ''
    var inputs = document.getElementsByTagName('input')
    var radios = new Array()
    
    for (var i = 0; i < inputs.length; i++)
    {
       if ( inputs.item(i).getAttribute('type') == 'radio' )
       {
          radios.push(inputs.item(i))
       }
    }
    
    for (var i = 0; i < radios.length; i++)
    {
       if ( radios.item(i).checked )
       {
          controllo = true
          id_radio = radios.item(i).getAttribute('id')
       }
    }

  3. #3
    Il post è stato spostato in quanto l'argomento trattato si riferisce a Javascript e non ad X-HTML
    FEDERIX.IT - [Pillola] GRAFICA DEI FORM

    ...ho ancora quella forza che ti serve, quando dici "Si comincia!"

  4. #4
    Rettifico il codice precedentemente postato. Si ritenga valido il seguente:

    codice:
    var controllo = false
    var id_radio = ''
    var inputs = document.getElementsByTagName('input')
    var radios = new Array()
    
    for (var i = 0; i < inputs.length; i++)
    {
       if ( inputs.item(i).getAttribute('type') == 'radio' )
       {
          radios.push(inputs.item(i))
       }
    }
    
    for (var i = 0; i < radios.length; i++)
    {
       if ( radios[i].checked )
       {
          controllo = true
          id_radio = radios[i].getAttribute('id')
       }
    }

  5. #5
    io ho piu o meno lo stesso problema ma vorrei fare in modo che se almeno 1 radio è stato cliccato il form venga inviato altrimenti no...
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  6. #6
    codice:
    var controllo = false
    var inputs = document.getElementsByTagName('input')
    var radios = new Array()
    
    for (var i = 0; i < inputs.length; i++)
    {
       if ( inputs.item(i).getAttribute('type') == 'radio' )
       {
          radios.push(inputs.item(i))
       }
    }
    
    for (var i = 0; i < radios.length; i++)
    {
       if ( radios[i].checked )
       {
          controllo = true
          break
       }
    }
    
    if ( controllo == true )
    {
       // Fai partire il form
    }
    else
    {
       // Restituisci gli avvertimenti opportuni
    }

  7. #7
    grazieee milleee
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    59
    Questo è per quando trova almeno una bottone selezionato. Invece se volessi che non va avanti finche' non sono stati selezionati tutti i bottoni? Grazie!!

  9. #9
    Direi di fare così:
    codice:
    var controllo = false
    var inputs = document.getElementsByTagName('input')
    var radios = new Array()
    
    for (var i = 0; i < inputs.length; i++)
    {
       if ( inputs.item(i).getAttribute('type') == 'radio' )
       {
          radios.push(inputs.item(i))
       }
    }
    
    for (var i = 0; i < radios.length; i++)
    {
       if ( radios[i].checked != true )
       {
          controllo = false
       }
    }
    
    if ( controllo == true )
    {
       // Fai partire il form
    }
    else
    {
       // Restituisci gli avvertimenti opportuni
    }
    Adesso sono un po' assonnato e non so se ho scritto boiate o meno. Prova e facci sapere.

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    59
    No, non va, se seleziono almeno un radio button passa comunque il parametro.

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.