我想知道是否至少选中了复选框,所以我使用以下代码。
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,当任何复选框被选中时,没有消息框。
发布于 2013-01-31 03:44:45
您应该将:checked添加到选择器中,以便它只选中选中的复选框:
function CheckIfAtLeastOneBoxIsCheckedBeforeSavingForm() {
var n = $('input[id*="ckHMreq"]:checked').length;
alert(n);
}发布于 2013-01-31 03:45:25
您的原始代码始终显示复选框输入的数量,而不是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今早似乎停机了)
为了回应您的评论,您在所有浏览器上都是相同的,这里是另一个有效的示例,与您在问题中显示的标记完全匹配。当你尝试它的时候,这个例子不能正常工作吗?如果它工作正常,请检查页面上其他地方可能存在的不同之处。
https://stackoverflow.com/questions/14612337
复制相似问题