Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Checkbox obbligatorio

  1. #1

    Checkbox obbligatorio

    Ho 4 checkbox e cioe'

    <input type="checkbox" name="trattamento" value="1">
    Solo camera
    <input type="checkbox" name="trattamento" value="2">
    Camera e colazione
    <input type="checkbox" name="trattamento" value="3">
    Mezza pensione
    <input type="checkbox" name="trattamento" value="4">
    Pensione completa


    ora voglio fare il controllo che almeno uno di questi 4 sia selezionato e lo faccio cosi':

    if (!(f.trattamento.checked)) {
    alert("Seleziona almeno un tipo di trattamento");
    return false;
    }
    return true;
    }


    Il problema e' che mi chiede sempre di selezionare un trattamento, anche se li seleziono tutti.
    Dove sbaglio?
    Come posso risolvere?
    Mai dire Mai

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Prova cosi:
    input form:
    codice:
    <input type="checkbox" name="trattamento_camera" value="1">
    Solo camera 
    <input type="checkbox" name="trattamento_camera_collazione" value="2"> 
    Camera e colazione 
    <input type="checkbox" name="trattamento_mezza_pensione" value="3"> 
    Mezza pensione
    <input type="checkbox" name="trattamento_pensione_completa" value="4">
    Pensione completa
    funzione:
    codice:
    if (!(f.trattamento_camera.checked)||(f.trattamento_camera_collazione.checked)||(f.trattamento_mezza_pensione.checked)||(f.trattamento_pensione_completa.checked)) {
    alert("Seleziona almeno un tipo di trattamento");
    return false;
    }
    return true; 
    }
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    ho provato ma mi chiede sempre di selezionare almeno un tipo di trattamento, anche se li seleziono tutti...
    Mai dire Mai

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
    
        <script language="javascript" type="text/javascript">
    // <!CDATA[
    
    function Button1_onclick() 
    {
        var cks = document.forms[0].trattamento;
        var checked = false;
        for(var i = 0; i < cks.length; i++)
        {
            if(cks[i].checked)
            {
                checked = true;
                break;
            }
        }
        alert(checked);    
        return checked; 
           
    }
    
    // ]]>
        </script>
    </head>
    <body>
        <form>
        <input type="checkbox" name="trattamento" value="1">
        Solo camera
        <input type="checkbox" name="trattamento" value="2">
        Camera e colazione
        <input type="checkbox" name="trattamento" value="3">
        Mezza pensione
        <input type="checkbox" name="trattamento" value="4">
        Pensione completa
        </form>
        <input id="Button1" type="button" value="button" onclick="return Button1_onclick()" />
    </body>
    </html>
    Pietro

  5. #5
    gia' questo funziona, pero' poi non so come mettere al posto di false il messaggio che deve inserire almeno un tipo di trattamento, mentre al posto di true che devo mettere?
    Mai dire Mai

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    codice:
    function Button1_onclick() 
    {
        if (!controllo_check())
        {
            //se non seleziono almeno un elemento, avviso e uscita
            alert("Devi selezionare almeno un elemento");
            return;
        }
        //altrimenti altra azione, per esempio submit
        document.forms[0].submit();
    }
    
    
    function controllo_check()
    {
        var cks = document.forms[0].trattamento;
        var checked = false;
        for(var i = 0; i < cks.length; i++)
        {
            if(cks[i].checked)
            {
                checked = true;
                break;
            }
        }
        return checked; 
    
    }
    Pietro

  7. #7
    gia' va meglio cosi', solo che vorrei eliminare quel trattamento=2 quando invio il modulo e mi esce nella barra degli indirizzi... si puo' fare?
    Mai dire Mai

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.