如果我有像这样的复选框:
<input type="checkbox" name"checkboxes1" value="#value1">
<input type="checkbox" name"checkboxes1" value="value2">
<input type="checkbox" name"checkboxes1" value="#value3">
<input type="checkbox" name"checkboxes2" value="value1">
<input type="checkbox" name"checkboxes2" value="#value2">
<input type="checkbox" name"checkboxes2" value="#value3">
如果满足以下两个条件,jquery中是否有一种简单的方法可以为每组复选框返回值1:
注意:复选框的名称是动态生成的,因此组中可以有任意数字,任意数量的组和每个组都可以有任何名称。
谢谢:)
答案 0 :(得分:1)
您可以使用[attr^=\#]模式选择属性。 所以,你可以编写类似的代码:
<html>
<head>
<script src="./lib/jquery/jquery-1.3.2.js"></script>
<script>
var checkall = function() {
var withHashAllChecked = true;
var withoutHashAllChecked = true;
$("input.cb1:checkbox[value^=#]").each(function() {
if (!this.checked) {
withHashAllChecked = false;
}
});
$("input.cb1:checkbox:not([value^=#])").each(function() {
if (!this.checked) {
withoutHashAllChecked = false;
}
});
var result = withHashAllChecked && (!withoutHashAllChecked);
alert(result);
};
$(function() {
$("input").click(checkall);
});
</script>
</head>
<body>
<input class="cb1" type="checkbox" name"checkboxes1" value="#value1">#1</input>
<input class="cb1" type="checkbox" name"checkboxes1" value="value2">2</input>
<input class="cb1" type="checkbox" name"checkboxes1" value="#value3">#3</input>
<input class="cb2" type="checkbox" name"checkboxes2" value="value1">1</input>
<input class="cb2" type="checkbox" name"checkboxes2" value="#value2">#2</input>
<input class="cb2" type="checkbox" name"checkboxes2" value="#value3">#3</input>
</body>
</html>
修改
更新了完整的工作代码。这只是检查类cb1的复选框,但只是为了让您了解如何实现。我必须道歉,原始代码有一些问题,我没有检查它。无论如何,我尝试上面的代码,它应该没问题(你应该修改jquery目录引用)。
答案 1 :(得分:0)
var checked = $('input:checkbox:checked[name=checkboxes1][value^=#]').length;
var notchecked = $('input:checkbox:not(:checked)[name=checkboxes1][value^=#]').length;