2013-01-04 14 views
6

Ho le seguenti caselle di controllo in più div.Seleziona o deseleziona tutte le caselle con lo stesso nome di classe in base al valore

<div class="div1"> 
    <input type="checkbox" class="chkbox" value="101"> This is 101 
    <input type="checkbox" class="chkbox" value="102"> This is 102 
    <input type="checkbox" class="chkbox" value="103"> This is 103 
</div> 
<div class="div2"> 
    <input type="checkbox" class="chkbox" value="110"> This is 110 
    <input type="checkbox" class="chkbox" value="102"> This is 102 
    <input type="checkbox" class="chkbox" value="101"> This is 101 
</div> 

Come mostrato sopra, alcune delle caselle di controllo hanno lo stesso valore (ad es. 101) su più div. Ora, ogni volta che una casella è selezionata, ho bisogno di controllare altre caselle con lo stesso valore. Allo stesso modo, per deselezionare.

$(".chkbox").change(function() { 
    // If checked 
    if (this.checked) 
      // find other checkboxes with same value and check them 
    else 
      // find other checkboxes with same value and uncheck them 
} 

risposta

8

si potrebbe fare:

$(".chkbox").change(function() { 
    var val = $(this).val(); 
    if($(this).is(":checked")) { 

    $(":checkbox[value='"+val+"']").attr("checked", true); 
    } 
    else { 
     $(":checkbox[value='"+val+"']").attr("checked", false); 
    } 
}); 

Demo: jsFiddle

3
$(".chkbox").change(function() { 
    $(":checkbox[value="+$(this).val()+"]").prop("checked", this.checked); 
} 
0

Si può fare in questo modo.

Live Demo

$(".chkbox").change(function() { 
    // If checked 
    if (this.checked) 
      $(":checkbox[value=" + this.value + "]").attr('checked', true); 
    else 
      $(":checkbox[value=" + this.value + "]").attr('checked', false);   // find other checkboxes with same value and uncheck them 
}) 

vi siete persi la paraenthesis chiusura ) di evento di modifica.

+0

Motivo vote down? – Adil

0
$(".chkbox").change(function() { 
    var value = $(this).attr("value"); 

    $(".chkbox[value='" + value + "']").prop("checked", this.checked); 
}); 
0
// if user has already sent the survey 
    if(user_id_value){ 

     var result = confirm("This user already received a survey. Are you sure you want to resend?"); 

     // do not send the survey again 
     if(!result){    
      $(":checkbox[value='"+user_id+"']").attr("checked", false);   
     }// end if not confirmed 

    }// end if 
Problemi correlati