日期:2014-05-16  浏览次数:20324 次

一段JS在火狐的怪问题
HTML code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript">
function selNum(Form,idname){
var nn = 0;
for(var i=0; i<Form.elements.length; i++){
    if(Form.elements[i].name == idname){
    if(Form.elements[i].checked){
        nn++;
        }
        }
    }
    return nn;
}
function Test(){
    num=selNum(form1,"id");
    alert(num);
}
</script>
</head>

<body>
<form name="form1" method="post" action="">
<%for i = 0 to 10%>
<input name="id" type="checkbox" id="id" value="<%=i%>" />
<%next%>
<input type="button" name="s" value="测试" onclick="javascript:Test();" />
</form>
</body>
</html>



在IE里可以执行 火狐就不可以,当我把JS代码不放在HEAD之间而放到最上面的时候 火狐也可以了 是什么原因??

------解决方案--------------------
num=selNum(document.form1,"id");
------解决方案--------------------
你的function Test(){ num=selNum(form1,"id"); alert(num); }
传递form1要用标准的方法,例如把你的form1改为document.getElementById('form1')或document.getElementByName('form1')[0]或document.forms['form1']等还有好些方法。
------解决方案--------------------
HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript">
function selNum(Form,idname){
var nn = 0;
for(var i=0; i<Form.elements.length; i++){
    if(Form.elements[i].name == idname){
    if(Form.elements[i].checked){
        nn++;
        }
        }
    }
    return nn;
}
function Test(){
    num=selNum(document.form1,"id");
    alert(num);
}
</script>
</head>

<body>
<form name="form1" method="post" action="">
<%for i = 0 to 10%>
<input name="id" type="checkbox" id="id" value="<%=i%>" />
<%next%>
<input type="button" name="s" value="测试" onclick="javascript:Test();" />
</form>
</body>
</html>