Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Inoki
    Registrato dal
    Oct 2001
    Messaggi
    788

    Problemi selezione checkbox multiple

    Salve a tutti.

    Vorrei far selezionare tutte una serie di check box che vengono create dinamicamente.
    Loe check box hanno questa struttura:

    codice:
    <input type="checkbox" name="check_X" value="YYYY">
    Dove X è un numero variabile, che parte da 0 e arriva fino al numero di record restituiti dall'interrogazione al DB, e che è cmq fissato in una varibile check_tot.
    YYYY è un valore ID relativo al record ed anche quello varia al variare (ovviamente) della checkbox


    Prendendo spunto da un post sul forum ho sviluppato questo script:
    codice:
    function checkAll(aValue) {
    	var count
    	aColl = document.getElementsByTagName("INPUT");
    	for (i=0;i<aColl.length;i++) {
    		curObj = aColl[i];
    		if (curObj.type == 'checkbox') {
    			curObj.checked = aValue;
    		}
     }
    
    }
    E la funzione che la richiama è legata ad un'altra checkbox:
    codice:
    <input type="checkbox" name="checkAll" onClick="checkAll(this.checked)">
    Purtroppo quando vado a provarla non mi funziona.. mi sapete dire dove sbaglio?
    "La teoria è quando si sa tutto e niente funziona. La pratica è quando
    tutto funziona e nessuno sa il perché. In questo caso, abbiamo messo
    insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa
    il perché!" (Albert Einstein)

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924

    Re: Problemi selezione checkbox multiple

    prova così

    codice:
    function checkAll(value) {
    	var count;
    	aColl = document.getElementsByTagName("input");
    	for (i=0;i<aColl.length;i++) {
    		curObj = aColl[i];
        		if ((curObj.type == 'checkbox') && (curObj.name != 'checkAll')) {
    			curObj.checked = (value)? 'checked' : 'false';
    		}
          }
    }
    E la funzione che la richiama:

    codice:
    <input type="checkbox" name="checkAll" onClick="checkAll(this.checked)">
    Ciao
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it L'avatar di Inoki
    Registrato dal
    Oct 2001
    Messaggi
    788
    Niente da fare nemmeno così!!!
    "La teoria è quando si sa tutto e niente funziona. La pratica è quando
    tutto funziona e nessuno sa il perché. In questo caso, abbiamo messo
    insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa
    il perché!" (Albert Einstein)

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non puoi dare lo stesso nome a due oggetti nella pagina... nel tuo caso il checkbox e la funzione

    name="checkAll" onClick="checkAll(this.checked)

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Utente di HTML.it L'avatar di Inoki
    Registrato dal
    Oct 2001
    Messaggi
    788
    Originariamente inviato da br1
    Non puoi dare lo stesso nome a due oggetti nella pagina... nel tuo caso il checkbox e la funzione

    name="checkAll" onClick="checkAll(this.checked)

    ciao
    questo lo ignoravo...
    "La teoria è quando si sa tutto e niente funziona. La pratica è quando
    tutto funziona e nessuno sa il perché. In questo caso, abbiamo messo
    insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa
    il perché!" (Albert Einstein)

  6. #6
    Utente di HTML.it L'avatar di Inoki
    Registrato dal
    Oct 2001
    Messaggi
    788
    Effettivamente ora funziona.. vi ringrazio..

    Ma c'è qualcosa che non ho previsto...
    Quando clicco sul checkbox mi seleziona correttamente tutti gli altri checkbox, come di dovere, ma se poi lo deseleziono, i checkbox rimangono selezionati..

    come d3evo modificare lo script per permettere di selezionare e deselezionare contemporaneamente tutti i check box?
    "La teoria è quando si sa tutto e niente funziona. La pratica è quando
    tutto funziona e nessuno sa il perché. In questo caso, abbiamo messo
    insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa
    il perché!" (Albert Einstein)

  7. #7
    Prova così:

    function stopCheckAll(value) {
    var count;
    aColl = document.getElementsByTagName("input");
    for (i=0;i<aColl.length;i++) {
    curObj = aColl[i];
    if ((curObj.type == 'checkbox') && (curObj.name != 'checkAll')) {
    curObj.removeAttribute("checked");
    }
    }
    }

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    O piu' semplicemente cancella la parte in rosso:

    curObj.checked = (value)? 'checked' : 'false';

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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.