• User

    controlli checkbox

    ciao a tutti...ho un problemino con java...

    ho due parti distinte nella stessa pagina dove l'utente deve selezionare nella prima parte un'opzione tramite checkbox

    e nella seconda parte un'altra opzione tramite checkbox

    ora, cercando un pò qua e un pò la ho trovato un controllo che mi fa il conteggio dei check selezionati e se più di uno mi da un messaggio di errore...e fino qui tutto ok...l'ho inserito nella prima parte della pagina (dove mi interessa eseguire il controllo e funziona).

    Lo stesso controlo lo devo mettere anche sotto...ho provato a cambiare i parametri e i nomi del controllo e della funzione ma non mi va...praticamente il controllo sopra mi blocca la selezione di quello sotto oppure non funziona proprio e mi permette di selezionare tutti i check box...come posso fare?

    grazie per gli aiuti...posto il codice

    *-questo è per la prima parte...e sui check ho inserito onClick="ctr(this)" e funziona-

     <script>
    
    var conta=0;
    function ctr(quale)
    {
    if (quale.checked)
    {
    conta++;
    if (conta > 1)
    {
    alert("Puoi scegliere solo un numero!");
    quale.checked=false;
    conta--;
    }
    }
    else
    {
    conta>0?conta--:null; 
    }
    }
    </script>
    
    

    *-questo è per la seconda parte...e sui check ho inserito ```
    onClick="controllo(this)" e non funziona-
    <script>

    <script>
    var conta=0;
    function controllo(quale)
    {
    if (quale.checked)
    {
    conta++;
    if (conta > 1)
    {
    alert("Puoi scegliere un colore!");
    quale.checked=false;
    conta--;
    }
    }
    else
    {
    conta>0?conta--:null;
    }
    }

    </script>

    
    *Editato per inserire il codice in un apposito blocco.*

  • Super User

    Ciao Mappex 🙂

    ti consiglio di usare il tag ```
    (disponibile in automatico tramite la formattazione avanzata) quando scrivi il codice.

    Per ottenerlo formattato così come ho fatto io.

    Comunque prova ad usare

    [CODE]document.NomeDelForm.quale.checked

    
    al posto di 
    

    quale.checked

    
    Altrimenti posta il codice completo di una paginetta, che è meglio.
    
    :ciauz:

  • User

    niente da fare 😞

    ecco la paginetta...almeno le parti che interessano...
    questa è la parte in java...

    
    <script>
    
    var conta=0;
    function ctr(quale)
    {
    if (quale.checked)
    {
    conta++;
    if (conta > 1)
    {
    alert("Puoi scegliere solo un colore!");
    quale.checked = false;
    conta--;
    }
    }
    else
    {
    conta>0?conta--:null; 
    }
    }
    </script>
    <script>
    
    var conta=0;
    function ctr(quale)
    {
    if (document.form1.quale.checked)
    {
    conta++;
    if (conta > 1)
    {
    alert("Puoi scegliere solo una dimensione!");
    document.form1.quale.checked = false;
    conta--;
    }
    }
    else
    {
    conta>0?conta--:null; 
    }
    }
    </script>
    
    

    e quesdi sono i checkbox...

    
    <form id="form1" name="form1" method="post" action="continua.php">
    .
    .
    .
    .
    <input name="1" type="checkbox" id="scelta1" onClick="ctr(this)" value="rosso"/>
                   <input name="2" type="checkbox" id="scelta2" onClick="ctr(this)" value="giallo" />
     <input name="3" type="checkbox" id="scelta3" onClick="ctr(this)" value="verde" />
    .
    .
    .
    .
    <input name="4" type="checkbox" id="numero1" onClick="ctr(this)" value="grande"/>
                   <input name="5" type="checkbox" id="numero2" onClick="ctr(this)" value="medio" />
     <input name="6" type="checkbox" id="numero3" onClick="ctr(this)" value="piccolo" />
    .
    .
    .
    
    
    

    praticamente l'utente può scegliere un colore e un solo metodo di misura...
    questo è quello che dovrebbe risultare...

    posso poi inserire anche un altro tipo di controllo?

    mi spiego...estrapolo il valore dal db ammettiamo VAL = 2000
    lo voglio associare alla grandezza media e l'utente se clicca sulla misura media, javascript mi controlla il valore di VAL e se più grande di 2000 mi blocca con alert e non mi permette di proseguire...


  • User

    help me please...


  • User Attivo

    ma perché non inserisci le opzioni in menu a tendina, dai quali puoi fare solo una scelta? oppure usare dei radio?


  • User

    Provo a spiegarmi meglio...

    l'utente sceglie un colore, a seconda del colore, può scegliere la misura...
    può scegliere un colore e una misura, se metto un controllo semplice sui check, può succedere che l'utente mi selezioni due colori e nessuna misura.

    il tutto deve essere fattu su check box...nessuno ha delle idee?

    I radio? si, mi va bene di usare un radio nella parte sotto ma come faccio a dargli un controllo di conteggio sui radio?


  • User Attivo

    io fossi in te userei sopra i check, che tanto hai già il conto... i radio ed i menu a tendina sono fatti apposta per poter selezionare una sola opzione... non c'è bisogno di nessun controllo!!

    hai solo bisogno di controllare che almeno una delle opzioni sia scelta. fai una cosa del tipo

    if (document.nomeForm.nomeCampo.value=""){
    window.alert("non hai selezionato nulla");
    }
    ..spero ti serva...


  • User

    si ma iradio...se io ne ho tre...li posso selezionare tutti e tre...e poi una volta selezionati se l'utente sbaglia...come fa a cancellarlo? deve azzerare tutto il form?


  • User Attivo

    ??

    se tu metti tre radio... se ne può selezionare solo uno! 🙂

    fai in questo modo:
    <form>
    <fieldset>
    <legend>colori</legend>
    blu<input type="radio" name="colore" value="blu"/>
    giallo <input type="radio" name="colore" value="giallo"/>
    verde <input type="radio" name="colore" value="verde"/>
    </fieldset>
    </form>