Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344

    jQuery: checkbox per selezionare checkbox dello stesso gruppo

    Ho questa struttura:

    [PHP]
    <div>

    <div class="float-left" style="width:150px;">
    <input type="checkbox" name="8" id="8" value="8">
    <label for="8">Nome ufficio</label>
    </div>

    <div class="float-left" style="width:100px;">
    <input type="checkbox" name="selected[]" id="" value="1">
    <label for="" class="inline"> Utente 1</label>
    </div>

    <div class="float-left" style="width:100px;">
    <input type="checkbox" name="selected[]" id="" value="2">
    <label for="" class="inline"> Utente 2</label>
    </div>

    </div>
    [PHP]

    In pratica sono uffici con i relativi utenti.
    Vorrei che facendo il check/uncheck sil primo checkbox, ovvero quello del Nome Ufficio, venisse effettuato il check/uncheck anche su tutti utenti.

    Ovviamente anche aggiungendo degli ID al div contenitore o agli altri.

    Un aiuto sfruttando jQuery?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    codice:
    $("input:checkbox").click(function(){
    	var isChecked = $(this).attr("checked");
    	$("input:checkbox").each(function(){
    		$(this).attr("checked",isChecked);
    	});
    });

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344
    Così premendo un qualsiasi checkbox attiva/disattiva tutti i checkbox della pagina, mentre io voglio che premendo il solo checkbox relativo al nome ufficio attivi/disattiva solo i checkbox relativi a quell'ufficio.

    Ho fatto così e funziona:

    Codice PHP:
    function sel(id_reparto) {
        if($(
    "input#"+id_reparto).is(':checked')) {
            $(
    "input."+id_reparto).attr('checked'true);
        } else {
            $(
    "input."+id_reparto).attr('checked'false);
        }

    richiamando dall'input dell'ufficio/reparto la funzione sel(id_reparto) ed assegnando agli input relativi a quel reparto una classe con l'id_reparto:

    Codice PHP:
    <div><input type="checkbox" id="2" onclick="sel(2)">
     <
    div><input type="checkbox" class="2" value="1"></div>
     <
    div><input type="checkbox" class="2" value="2"></div>
     <
    div><input type="checkbox" class="2" value="3"></div>
    </
    div
    Funziona, ma non mi sembra molto elegante; forse sarebbe preferibile usare qualcosa tipo parent e each ma non capisco come fare.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    codice:
    <input type="checkbox" class="ufficio"> 
    <div>
     <input type="checkbox" value="1">
     <input type="checkbox" value="2">
     <input type="checkbox" value="3">
    </div>
    
    <input type="checkbox" class="ufficio"> 
    <div>
     <input type="checkbox" value="1">
     <input type="checkbox" value="2">
     <input type="checkbox" value="3">
    </div>
    
    $(".ufficio").click(function(){
    $(this).next().children().attr("checked",$(this).attr("checked"));
    });

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344
    ok ottima la tua soluzione. Io avevo modificato ancora e fatto così:

    Codice PHP:
    <div id="2">
    <
    input type="checkbox" class="sel">
     <
    div><input type="checkbox" value="1"></div>
     <
    div><input type="checkbox" value="2"></div>
     <
    div><input type="checkbox" value="3"></div>
    </
    div>

    $(
    ".sel").click(function() {
        var 
    id_reparto = $(this).parent().attr('id');
        if($(
    this).is(':checked')) {
            $(
    "div#"+id_reparto+" :checkbox").attr('checked'true);
        } else {
            $(
    "div#"+id_reparto+" :checkbox:enabled").attr('checked'false);
        }
    }); 
    Così se un input è disabilitato non viene modificato.

    Comunque ho capito che ci sono molte altre soluzioni con la flessibilità di jQuery (è solo che non sono ferrato in javascript). Ora ho comunque le idee un po' più chiare.

    Grazie
    ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Si esistono mille soluzioni, questa per esempio se vuoi mantenere i div per ogni checkbox:

    codice:
    <div>
       <input type="checkbox" class="ufficio"> 
      <div>  
         <div><input type="checkbox" class="2" value="1"></div> 
         <div><input type="checkbox" class="2" value="2"></div> 
         <div><input type="checkbox" class="2" value="3"></div> 
      </div>
    </div>
    
    $(".ufficio").click(function(){
       var isChecked = $(this).attr("checked");
       $(this).next().children().each(function(){
          $(this).children().attr("checked",isChecked);
       });
    });

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.