有没有办法一次取消选中所有框?
我有一个 4x4 的复选框表,我将它们的所有 ID 设置为“cb”。我想要一个清除所有这些的按钮,所以我尝试执行如下操作:
document.getElementById("cb").checked="false"
但在屏幕上,它们仍然处于选中状态。这可能吗?
有没有办法一次取消选中所有框?
我有一个 4x4 的复选框表,我将它们的所有 ID 设置为“cb”。我想要一个清除所有这些的按钮,所以我尝试执行如下操作:
document.getElementById("cb").checked="false"
但在屏幕上,它们仍然处于选中状态。这可能吗?
ID 是唯一的,因此拥有多个具有相同 ID 的元素不会解决问题,只会使您的标记无效。改用类:
var boxes = document.getElementsByClassName("cb");
for (i=0; boxes.length<i; i++) {
boxes[i].checked = false;
}
检查这篇文章Javascript 检查并取消选中所有复选框
下面是代码:
脚本
<script language="JavaScript">
function checkAll(field)
{
for (i = 0; i < field.length; i++)
field[i].checked = true ;
}
function uncheckAll(field)
{
for (i = 0; i < field.length; i++)
field[i].checked = false ;
}
</script>
HTML
<form name="myform" action="checkboxes.asp" method="post">
<b>Your Favorite Scripts & Languages</b><br>
<input type="checkbox" name="list" value="1">Java<br>
<input type="checkbox" name="list" value="2">Javascript<br>
<input type="checkbox" name="list" value="3">Active Server Pages<br>
<input type="checkbox" name="list" value="4">HTML<br>
<input type="checkbox" name="list" value="5">SQL<br>
<input type="button" name="CheckAll" value="Check All"
onClick="checkAll(document.myform.list)">
<input type="button" name="UnCheckAll" value="Uncheck All"
onClick="uncheckAll(document.myform.list)">
<br>
</form>
此致
你可以使用这样的东西:
function toggle(state) {
var cb = document.getElementsByName('cb');
for (var i = cb.length; i--;) {
cb[i].checked = typeof state != 'undefined' ? state : !cb[i].checked;
}
}
用法:
toggle(false); // Uncheck all
toggle(true); // Check all
toggle(); // Toggle all
在此示例中,您通过 name 属性选择复选框。您还可以使用类名并通过document.getElementsByClassName或document.querySelectorAll方法选择输入。
演示:http: //jsfiddle.net/kCmqL/1/
虽然您已经有了答案,但我想我也会发布以下内容作为选项。给定以下最小/演示性 HTML 标记:
<input type="checkbox" class="something" name="cb" />
<input type="checkbox" class="something" name="cb" checked />
<input type="checkbox" class="something" name="cb" />
<input type="checkbox" class="something" name="cb" />
<input type="checkbox" class="something" name="cb" checked />
<input type="checkbox" class="something" name="cb" checked />
以下 JavaScript 可用于选中、取消选中或切换checkboxes
选择器返回的所有内容:
Object.prototype.check = function (newState) {
switch (newState.toLowerCase()) {
case 'toggle':
for (var i = 0, len = this.length; i<len; i++){
this[i].checked = !this[i].checked;
}
break;
case 'check':
for (var i = 0, len = this.length; i < len; i++) {
this[i].checked = true;
}
break;
case 'uncheck':
for (var i = 0, len = this.length; i < len; i++) {
this[i].checked = false;
}
break;
}
return this;
};
要切换所有,请调用(例如):
document.getElementsByClassName('something').check('toggle');
.
要检查所有,请调用(例如):
document.getElementsByClassName('something').check('check');
.
要取消选中所有,请调用(例如):
document.getElementsByClassName('something').check('uncheck');
.
尝试
<script language="javascript">
function checkUnCheckAll(formname)
{
var checkboxes = new Array();
checkboxes = document[formname].getElementsByTagName('input');
for (var i=0; i<checkboxes.length; i++) {
if (checkboxes[i].type == 'checkbox') {
checkboxes[i].checked = false;
}
}
}
</script>
More
您也可以对所有控件使用相同的名称,如下所示:
<input type="Checkbox" name="compare" id="compare" value="1" />
<input type="Checkbox" name="compare" id="Checkbox1" value="5" />
<input type="Checkbox" name="compare" id="Checkbox2" value="8" />
<input type="Checkbox" name="compare" id="Checkbox3" value="10" />
<input type="button" value="select all" onclick="javascript:checkAll()"/>
<input type="button" value="unckeck all" onclick="javascript: unCheckAll()"/>
<script type="text/javascript">
function checkAll()
{
var c = document.getElementsByName("compare");
for (var i = 0; i < c.length; i++) {
c[i].checked = true;
}
}
function unCheckAll() {
var c = document.getElementsByName("compare");
for (var i = 0; i < c.length; i++) {
c[i].checked = false;
}
}
</script>