首先选择器写法就不对
document.getElementsByName['game'],至少这么写
其次
由于你所有input标签所有的name属性都不一样,不能批量选择,除非像楼上贴代码那哥们一样,把所有的复选框的name属性都改为game也可以。如果纯粹是为了达到目的话用document.getElementsByTagName("input"),能达到效果
另外,楼上也提到了,判断的等号==
还有提醒楼主一下,不要反复的使用选择器,少量代码无所谓,大量代码的情况下会降低运算效率的。
在楼主的代码基础上改了一下
//全选function test()
{
obj = document.getElementsByTagName("input")
for(var i=0i<obj.length-3i++)
{
var f=obj[i]
if(f.checked==false)
{
f.checked=true
}
}
}
//反选
function ftest()
{
obj = document.getElementsByTagName("input")
for( var i=0i<obj.length-3i++)
{
f=obj[i]
if(f.checked==false)
{
f.checked=true
}
else
{
f.checked=false
}
}
}
//全部取消
function CancelAll()
{
obj = document.getElementsByTagName("input")
for( var i=0i<obj.length-3i++)
{
f=obj[i]
if(f.checked==true)
{
f.checked=false
}
}
}
有几个地方可能有问题:
部分浏览器不支持form1.这种方法访问控件,使用document.方法。
if(elements[i].type=='checkbox') {
if(elements[i].checked==false){
elements[i].checked=true}}
这样写会比较好点:
if (elements[i].type == 'checkbox') elements[i].checked = !elements[i].checked
通过给 checked 属性复制,只要 checked 存在,无论是任何值都表示选中。
<input type='checkbox' checked />这才是 W3C 的标准。注意到没有?checked 属性其实并没有等于号赋值,因为实际上它等于啥都无所谓,只要存在这个属性就是表示选中。
Obox[i].checked = '' // 选中Obox[i].checked = 'checked' // 选中
Obox[i].checked = 'true' // 选中
Obox[i].checked = 'false' // 选中
Obox[i].checked = true // 选中
Obox[i].checked = false // 取消选中
input 标签中同理的还有 readonly、autofocus 之类的属性。