2011-10-08 60 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。 –