Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    57

    Seleziona/Deseleziona tutti i checkbox di un menù

    Vi incollo direttamente la discussione dall'altro forum:
    Originariamente inviato da Kujo
    Dunque io ho una lista di "opzioni" con relativo checkbox da spuntare (il menù è dinamico, quindi il numero di voci dipende da una tabella su un DB e viene creato con la lettura di un oggetto Recordset in un ciclo while): è possibile in asp creare un link/bottone che permetta di selezionare tutte le opzioni o deselezionarle tutte o devo usare javascript?

    Potete darmi qualche indicazione o linkarmi qualcosina di facile e veloce?

    Possibilmente preferirei far tutto in asp, ma non so se è possibile: fatemi sapere, grazie!
    http://forum.html.it/forum/showthrea...readid=1259077

    Sto facendo un lavoro in asp, ma ho necessità di creare questa funzione e mi han detto di venire qui.
    Considerate che non ho proprio dimestichezza con JS quindi trattatemi come un cretino ^^;
    Grazie in anticipo.

  2. #2
    Immagino tu abbia una serie di checkbox con lo stesso name in modo che sia sequenziale (ad es name="check[]"), allora puoi associare l'evento onclick di un altro checkbox con una funzione che modifica i checkbox con un ciclo for.

    Ora mi spiego:

    Metti di avere il seguente HTML:
    Codice PHP:



        Check
    /Uncheck All: <input type="checkbox" onclick="checkUncheck(this)" />
    </
    p>
    <
    form name="form" action="" method="post">
        


            <
    input type="checkbox" name="check[]" />
        </
    p>
        


            <
    input type="checkbox" name="check[]" />
        </
    p>
        


            <
    input type="checkbox" name="check[]" />
        </
    p>
        


            <
    input type="checkbox" name="check[]" />
        </
    p>
        


            <
    input type="checkbox" name="check[]" />
        </
    p>
        


            <
    input type="checkbox" name="check[]" />
        </
    p>
        


            <
    input type="checkbox" name="check[]" />
        </
    p>
        


            <
    input type="checkbox" name="check[]" />
        </
    p>
    </
    form
    Nota che il checkbox che sta in cima ha una proprietà chiamata onclick. Quello è l'evento, sostanzialmente dice "quando clicchi su questo input attiva quella funzione Javascript". Ci sono altri eventi, che sono altrettanto utili, ma al fine della discussione ti serve questo.

    Ora andiamo a creare la funzione checkUncheck:

    Codice PHP:
    function checkUncheck(check)
    {            
        var 
    checks document.getElementsByName('check[]');
        for(
    0checks.lengthi++)
        {    
            
    checks[i].checked check.checked;                
        }

    Questa funzione prende in ingresso come parametro un Element, ovvero un oggetto che rappresenta un TAG della pagina.

    La funzione in questo caso otterrà l'elemento chiamante, ovvero il checkbox su cui andiamo a cliccare.

    La prima cosa che fa è utilizzare una funzione dell'elemento document, che rappresenta tutta la pagina HTML, chiamata getElementsByName, che ritorna un Array (collezione di oggetti) contenente tutti gli Elementi che hanno name = al paramentro passato (in questo caso il nome dei checkbox).

    Sull'array, faccio un ciclo for (una iterazione, c'è anche in asp), e, per ogni elemento dell'array setto la proprietà checked (proprietà dei checkbox che indica se sono selezionati) al valore che il checkbox che vado a cliccare assume.

    Spero di essere stato chiaro.

    P.S. Questa funzione la devi mettere in un tag <script type="text/javascript"></script> nell'head della pagina.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    57
    Perfetto, provo subito.
    Mille grazie!
    Solo una domanda: la propietà onclick posso settarla anche su un bottone o cmq su qualsiasi altro "input type"?

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    129
    Invece se uno ha tutti i checkbox con nomi diversi??

    Io per esempio li ho chiamati 1 2 3 4 5 ....

  5. #5
    @Kujo
    l'EVENTO onclick si verifica su tutti, mi sembra, gli Elementi delle form (input, textarea, select, button) e si traduce in quando con il mouse fai click e rilasci subito il bottone, con il cursore sull'elemento, fai questa funzione.

    @Mitttico
    Per favore, cambia quei nomi, è una cosa che manda in palla JS. Per il resto, fevi fare una funzione un po' diversa:
    Codice PHP:
    function checkUncheck(check)
    {            
        var 
    checks document.getElementsByTagName('input');
        for(
    0checks.lengthi++)
        {    
            if(
    checks[i].type.toUpperCase() == 'CHECKBOX')
                
    checks[i].checked check.checked;                
        }

    N.B. Questa va bene anche per il caso di Kujo, ma è meno utilizzabile, dato che fa tutti i checkbox, senza distinzione per nome.

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.