我感觉问题出在这里。你在这里跳转之后,for剩下的循环代码就不会执行了。建议把所有value取出来一次传给后端,不要在循环中连续跳转。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<script type="text/javascript">
//全选
function test()
{
var f=document.getElementsByName("game")
for(var i=0i<f.lengthi++)
{
if(f[i].checked==false)
{
f[i].checked=true
}
}
}
//反选
function ftest()
{
var f=document.getElementsByName("game")
for( var i=0i<f.lengthi++)
{
if(f[i].checked==false)
{
f[i].checked=true
}
else
{
f[i].checked=false
}
}
}
//全部取消
function CancelAll()
{
var f=document.getElementsByName("game")
for( var i=0i<f.lengthi++)
{
if(f[i].checked==true)
{
f[i].checked=false
}
}
}
</script>
</head>
<body>
<input name="game" type="checkbox" value="lanqiu"/>篮球
<input name="game" type="checkbox" value="zuqiu"/>足球
<input name="game" type="checkbox" value="pingpangqiu"/>乒乓球
<input name="game" type="checkbox" value="bangqiu"/>棒球
<input name="game" type="checkbox" value="ganlanqiu"/>橄榄球<br/>
<input type="button" value="全选" onclick="test()"/>
<input type="button" value="反选" onclick="ftest()"/>
<input type="button" value="全不选" onclick="CancelAll()"/>
</body>
</html>
把if(f[i].checked=true) 改为 if(f[i].checked==true)