2015-08-21 110 views
1

我有一个asp.net weform,并且在一个页面上我有7个复选框,我之后是,如果第一个复选框被选中,则剩余的6个被禁用,否则如果选中复选框(2 - 6),我希望第一个被禁用。当'全部'复选框被选中时禁用所有复选框

此外,如果用户从2 - 6中选择2个或更多的复选框,那么只有当他们全部未选中时才应启用第一个复选框。

HTML

<div class="form-group"> 
    <div class="col-xs-offset-0 col-sm-offset-4 col-sm-3">All services</div> 
    <div class="col-sm-1"> 
      <asp:CheckBox ID="Step02AllServices" runat="server" /> 
    </div> 
</div> 
<div class="form-group"> 
    <div class="col-xs-offset-0 col-sm-offset-4 col-sm-3">Site content uploading only</div> 
    <div class="col-sm-1"> 
      <asp:CheckBox ID="Step02ContentUploading" runat="server" /> 
    </div> 
</div> 
<div class="form-group"> 
    <div class="col-xs-offset-0 col-sm-offset-4 col-sm-3">Site content &amp; layout checking</div> 
    <div class="col-sm-1"> 
      <asp:CheckBox ID="Step02ContentLayoutChecking" runat="server" /> 
    </div> 
</div> 
<div class="form-group"> 
    <div class="col-xs-offset-0 col-sm-offset-4 col-sm-3">Testing on various browsers</div> 
    <div class="col-sm-1"> 
      <asp:CheckBox ID="Step02TestingVariousBrowsers" runat="server" /> 
    </div> 
</div> 
<div class="form-group"> 
    <div class="col-xs-offset-0 col-sm-offset-4 col-sm-3">Testing all website functionality</div> 
    <div class="col-sm-1"> 
      <asp:CheckBox ID="Step02TestingFunctionality" runat="server" /> 
    </div> 
</div> 
<div class="form-group"> 
    <div class="col-xs-offset-0 col-sm-offset-4 col-sm-3">Responsive design layouting only</div> 
    <div class="col-sm-1"> 
      <asp:CheckBox ID="Step02ResponsiveLayouting" runat="server" /> 
    </div> 
</div> 
<div class="form-group"> 
    <div class="col-xs-offset-0 col-sm-offset-4 col-sm-3">Responsive design layout testing</div> 
    <div class="col-sm-1"> 
      <asp:CheckBox ID="Step02ResponsiveTesting" runat="server" /> 
    </div> 
</div> 
+1

您是否尝试过任何操作?代码片段请 –

+0

我猜[这](http://stackoverflow.com/a/9669062/2174170)是你在找什么。当你选择2个或更多时,它不会满足不选中第一个。 – Dumisani

+0

@Dumisani并非如此。我不希望所有的复选框被选中只是'所有服务'足以知道他们想要的一切。 – murday1983

回答

1
$(document).on('click', ':checkbox', function(){ 
    $(":checkbox:not('#Step02AllServices')").attr('disabled', $('#Step02AllServices').is(':checked')); //disabled checkBoxes if 1st is checked 
    $("#Step02AllServices").attr('disabled', $(":checkbox:not('#Step02AllServices')").is(':checked'));//disabled 1st checkBoxe if any except 1st is checked 

});

如果我理解正确的话......

  • 如果点击第一个复选框 - 其他应禁用。
  • 如果点击2-6中的任何一个,则首先应该禁用。

最后一种情况下,我不明白

Example


而且,我记得ASP.Net添加一些前缀标识的元素。要禁用此功能,您可以将此部分添加到您的元素中ClientIDMode="Static"

+0

正是我在找什么 – murday1983

-1

给他们所有的同一类,如 “复选框” 什么的。然后将文档准备:

$("#AllClear").on("click", function() { 
    $(".checkbox").attr("checked", false); 
    } 
+0

无法让它工作,但看着你的解决方案,如果我从第二个选择任何复选框向下,那么你的代码将全部禁用它们。这不是我所说的或想要的。如果用户选择了第一个,那么所有其他人将被禁用。如果用户选择第二个,那么他们可以选择第三个,第四个等,第一个需要被禁用 – murday1983

相关问题