2013-01-04 12 views
6

Mam następujące pola wyboru w wielu elementach div.Zaznacz lub odznacz wszystkie pola wyboru z tą samą nazwą klasy na podstawie wartości

<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> 

Jak pokazano powyżej, niektóre pola wyboru mają tę samą wartość (na przykład 101) w wielu elementach div. Teraz, gdy zaznaczone jest pole wyboru, muszę zaznaczyć inne pola wyboru o tej samej wartości. Podobnie, aby odznaczyć.

$(".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 
} 

Odpowiedz

8

można zrobić:

$(".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

Można zrobić to w ten sposób.

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 
}) 

Przegapiłeś paraenthesis zamykający ) zmian zdarzenia.

+0

Powód głosowania w dół? – 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 
Powiązane problemy