选中复选框时,不会显示警告消息框

时间:2013-01-30 19:43:25

标签: jquery asp.net

我想知道是否至少选中了复选框,所以我使用以下代码。

function CheckIfAtLeastOneBoxIsCheckedBeforeSavingForm() {
  var n = $('input[id*="ckHMreq"]:checked').length;
  alert(n);
}

如果未选中任何复选框,则警告消息框显示0.但是,如果选中至少一个复选框,则警报消息框甚至不会显示。

有什么理由吗?

修改

这是浏览器生成的HTML

<input id="contentMain_cklistPayroll_gvCKList_ckHMreq_0" type="checkbox" name="_ctl0:contentMain:cklistPayroll:gvCKList:_ctl2:ckHMreq" />

我还在jquery代码中添加了“checked”。当没有选中复选框时我仍然为0,而当选中任何复选框时,我仍然没有消息框。

2 个答案:

答案 0 :(得分:2)

您应该将:checked添加到您的选择器,以便它只选中已选中的复选框:

function CheckIfAtLeastOneBoxIsCheckedBeforeSavingForm() {
    var n = $('input[id*="ckHMreq"]:checked').length;
    alert(n);
}

答案 1 :(得分:1)

您的原始代码始终显示复选框输入的数量,而不是0 ...

http://jsfiddle.net/hRubC/(已选中) http://jsfiddle.net/szuzv/(未选中)

...所以你的HTML可能存在缺陷。

正如另一个答案中所建议的那样,您似乎希望将:checked添加到您的选择器中。

编辑:

http://jsfiddle.net/HFzJw/ 至少在Chrome中,您的原始选择器可以与您添加到问题中的input标记一起使用。也许这是特定于浏览器的问题?

编辑2: http://jsbin.com/iperin/1/edit(今天上午jsfiddle似乎失败了)

在回复您的评论时,您对所有浏览器的评价都相同,这是另一个工作示例,与您在问题中显示的标记完全匹配。您尝试此示例时是否无法正常工作?如果它确实正常工作,请检查页面上其他地方可能有什么不同。