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

ie与火狐获取name长度和checked区别
//取value
function getRadioValue(name){
var l=document.getElementsByName(name)
for(var ni=0;ni<parseInt(l.length);ni++){
if(l[ni].checked)
return l[ni].value;
}
return false;
}
//取状态
function getRadioChose(name) {
var l=document.getElementsByName(name)
for(var ni=0;ni<parseInt(l.length);ni++){  
if(l[ni].checked)
return ni + 1;

}
return false;
}
火狐下都正常,ie9下length变了,checked也不对。
求ie下这两个怎么改下。

------解决方案--------------------
l.length这里不用进行转换
------解决方案--------------------
你用Dom core的方法试一下,别用Html Dom的方法, 我这里没有IE9:
parseInt(l.getAttribute("length"))
------解决方案--------------------
parseInt(l.length) 这个ie下默认是8进制,好像。记不清了,自己查查。最好用parseInt(l.length,10)
------解决方案--------------------
在ie9下,你把这些值打印出来看一下。
------解决方案--------------------
我测试了下,ie7,8,9都可以啊,火狐下也是好的,测试代码如下:不用parseInt转换也是一样的
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
<script language="javascript" type="text/javascript">

function RegCehck() {
var aa = document.getElementsByName("aaa");
for (var ni = 0; ni < parseInt(aa.length); ni++) {
if (aa[ni].checked)
alert(ni);
}
}

</script>
</head>
<body>
<input type="checkbox" name="aaa" value="1"/>
<input type="checkbox" name="aaa" value="2"/>
<input type="checkbox" name="aaa" value="3"/>
<input type="button" value="123" onclick="RegCehck()"/>
</body>
</html>
------解决方案--------------------
探讨

引用:

我测试了下,ie7,8,9都可以啊,火狐下也是好的,测试代码如下:不用parseInt转换也是一样的
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
<script language="javascript" type="t……