2011-10-08 77 views
0

我需要取消所有拒絕上點擊批准複選框頭,反之亦然複選框的如何檢查/取消選中複選框的列表。我怎樣才能實現這個使用jQuery/JavaScript。jQuery的:在複選框點擊

Here is an image depicting my requirement

我的HTML代碼如下

<asp:TemplateField > 
     <HeaderTemplate> 
      Approve 
      <br /> 
      <input id="ChkAllApprovedItems" type="checkbox" /> 
     </HeaderTemplate> 
     <ItemTemplate> 
      <asp:CheckBox ID="chkApproval" Checked='<%#Eval("IsApproved").ToString()=="1"?true:false %>' runat="server" onclick="EnableApprove(this,this.checked);" /> 
     </ItemTemplate> 
    </asp:TemplateField> 

    <asp:TemplateField > 
     <HeaderTemplate> 
      Reject 
      <br /> 
      <input id="ChkAllRejectedItems" type="checkbox" /> 
     </HeaderTemplate> 
     <ItemTemplate> 
      <asp:CheckBox ID="chkReject" Checked='<%#Eval("IsRejected").ToString()=="1"?true:false %>' runat="server" onclick="EnableReject(this,this.checked);" /> 
     </ItemTemplate> 
    </asp:TemplateField> 

有人可以幫我一個示例代碼。

謝謝。

+1

如果您包含HTML,那麼提供合理的示例代碼將更容易。 – matkins

+1

@Jithin只是一個讓你開始的想法'$(「input [type = checkbox]:not(:checked)」,context)'''''''''''''''''''' )。 – Deeptechtons

+1

我會避免使用任何:checked或:not(:checked)選擇器,因爲在本例中,您不需要選擇處於特定狀態的框。您只需取消選中某個特定類型的所有框(拒絕或批准)即可。 –

回答

1

這裏有一個非常簡單的例子:

http://jsfiddle.net/ZcFda/2/

  • 獲取所有所有接受和拒絕複選框成兩個陣列
  • 綁定「點擊」事件的兩個頭複選框
  • 當標題被點擊,看看點擊是否導致它被「檢查」
  • 如果是這樣,循環通過適當的複選框並設置checked = false
+0

謝謝道格。你能否給我提供一個我的HTML – GethuJohn

+0

的示例代碼我並沒有在那裏看到太多的HTML - 這看起來像一些生成HTML的專有XML標籤。相反,您是否可以發佈實際生成的輸出,即您在瀏覽器的此頁面上「查看源代碼」時出現的HTML? –

1

您可以根據主複選框更改其他複選框屬性。 JS Fiddle

$("#master_checkbox").change(function(){ 
    // if checkbox is checked then chek all 
    if($(this).attr('checked')) { 
     $(".change_me").attr('checked', 'checked'); 
    } 
    // uncheck all 
    else { 
     $(".change_me").removeAttr('checked');  
    } 
}); 
+0

謝謝。只要將$(「#master_checkbox」)''更改爲'$(「#ChkAllApprovedItems」)',並將一個類('.change_me'或其他)添加到所有複選框,您能否爲我提供一個示例代碼以用於我的HTML – GethuJohn

+0

你想改變你的HTML。 –