Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    67

    Controllo selezione Checkbox e Radiobutton

    Salve a tutti, ho un form con due checkbox da poter selezionare, se almeno una delle due è selezionate posso effettuare il submit.
    Se ne seleziono una in particolare (si chiama "ard"), visualizzo due radiobutton e devo effettuare il controllo che in questo caso anche un radiobuotton venga spuntato altrimenti il contenuto del form non sarà inviato.
    Il problema che ho è che i due radio devono avere necessariamente lo stesso nome e quindi non riesco a fare in modo di verificare se uno dei due è checked. Come fare ?
    Al momento riesco solo a controllare la selezione di almeno una checkbox.

    Ecco la porzione di codice in questione

    function controlla(frm) {
    var rv = false;
    for (var i=0;i<frm.elements.length;i++){
    if (frm.elements[i].type && frm.elements[i].type.toLowerCase() =="checkbox" && frm.elements[i].checked) rv=true;
    }
    if (!rv){
    alert("Scegliere almeno un tipo di richiesta");
    }

    if (document.form_auto1.ard.checked)
    {
    if (document.form_auto1.generale.checked || document.form_auto1.rimas.checked)
    {
    rv=true;
    }
    else
    {
    alert("Se selezioni la scelta ARD dovrai selezionare il tipo GENERALE o RIMAS");
    return false;
    }
    }
    return rv;
    }


    <form class="form_auto1" name="form_auto1" action="richiesta_auto.php" method="post" onsubmit="return controlla(this)" >

    <td align="center" colspan=2><font color=" #4040c0">Tipo richiesta:</font>


    <input type="checkbox" name="rc" id="rc" value="rc">RC
    <input type="hidden" value=1 name="proviene" id="proviene">
    <input type="checkbox" name="ard" id="ard" value="ard" onclick="document.getElementById('tipoard').style. display=(this.checked)?'block':'none';">ARD
    </td>

    <input type="radio" name="tipo_ard" value="generale" >GENERALE
    <input type="radio" name="tipo_ard" value="rimas" onclick="if (!(document.form_auto1.rc.checked)){document.form_ auto1.action='scheda_ard_rimas.php'};">RIMAS



    Grazie

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    non ho seguito con troppa attenzione, ma mi sembra che occorra solo cambiare
    if (document.form_auto1.generale.checked || document.form_auto1.rimas.checked)
    in
    if (document.form_auto1.tipo_ard[0].checked || document.form_auto1.tipo_ard[1].checked)

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    67
    Originariamente inviato da Xinod
    non ho seguito con troppa attenzione, ma mi sembra che occorra solo cambiare
    if (document.form_auto1.generale.checked || document.form_auto1.rimas.checked)
    in
    if (document.form_auto1.tipo_ard[0].checked || document.form_auto1.tipo_ard[1].checked)
    Ok, funziona, grazie, comunque nel caso si avesse a che fare con molti radio, forse sarebbe meglio così

    if (document.nomeform.nomecheckbox.checked)
    {
    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("selezionare un radiobutton");
    return false;
    }
    }


    Funzionano entrambi i modi.

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    sicuramente
    ciao

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.