我有一个带有一堆复选框的表单,我想提供一个“全部检查”链接/按钮。
我正在使用下面的代码,但是当它运行时,它会在页面上选择一些单选按钮,并检查/取消选中这些按钮。我该如何解决这个问题?
var check = 0;
function doNow()
{
void(d=document);
void(el=d.getElementsByTagName('INPUT'));
for(i=0;i<el.length;i++)
{
if(check == 0)
void(el[i].checked=1)
else
void(el[i].checked=0)
}
if(check == 0)
check = 1;
else
check = 0;
}
答案 0 :(得分:7)
您将要检查元素的类型,以确保您不会意外地检查错误的输入类型。
基本示例:
function checkAll( toggle ) {
var inputs = document.getElementsByTagName( 'input' );
for( var i = 0; i < inputs.length; i++ ) {
if( inputs[i].type == 'checkbox' ) {
inputs[i].checked = toggle;
}
}
}
您可能希望添加其他检查,例如仅对某个逻辑“组”中的复选框起作用。
答案 1 :(得分:1)
您可以检查输入的类型:
if(el[i].type == 'checkbox') {
el[i].checked = true;
}
答案 2 :(得分:-1)
您可以将当前状态存储为函数的属性,并检查类型
function checkAll() {
var all = document.getElementsByTagName('input');
for( var i = 0, l = all.length; i < l; i++ ) {
if( all[i].type == 'checkbox' ) {
all[i].checked = checkAll.checked;
}
}
checkAll.checked = !checkAll.checked;
}
checkAll.checked = true;