JQuery验证至少检查了一个复选框

时间:2013-05-16 03:01:19

标签: jquery

我有一个带有一组相关复选框的asp.net webform。我想确认在单击提交按钮时,组中至少选中了一个复选框。我试图实现两种不同的解决方案但没有成功。当我尝试按类名返回已选中复选框的长度时,我收到0.当我尝试按名称返回缺失值时,我收到错误。如果我查看页面源,则复选框具有“已检查”属性。有人可以查看我的HTML并告诉我,如果我做错了吗?

  <tr>
      <td  colspan="2">
      <asp:CheckBox ID="cbga" runat="server"  CssClass="group1" name="group1[]" Text="A" />
      <asp:CheckBox ID="cbgb" runat="server" CssClass="group1"  name="group1[]" Text="B" />
     <asp:CheckBox ID="cbgc" runat="server" CssClass="group1"  name="group1[]" Text="C" />
</tr>

function ValChk(source, args) {
              var IsChecked = $(".group1:checked").length;//returns zero
           // var IsChecked = $('input[name="group1[]"]').is(':checked'); //returns false
              alert(IsChecked);    
        }

 <asp:CustomValidator ID="cvchks" runat="server" Display="dynamic"   
      ClientValidationFunction="ValChk" ErrorMessage="Please select a code"                                         
></asp:CustomValidator>

1 个答案:

答案 0 :(得分:3)

Working FIDDLE Demo

我认为你的ValChk没有触发。请参阅下面的代码。它工作正常。

HTML

<input type="checkbox" class="group1" />
<input type="checkbox" class="group1" />
<input type="checkbox" class="group1" />

<input type="button" id="check" />

的jQuery

$(function () {
    $('#check').on('click', function () {
        var IsChecked = !! $('.group1:checked').length;
        alert(IsChecked);
    });
});