下面这段代码是在Js中取RadioButtonList的Text和Value,在大部分浏览器上都能正常获取到,可是在火狐(Mozilla Firefox)浏览器下就取不到,有大侠知道为什么呢,忘高手来修正下,谢谢 //取得RadioButtonList的集合
var radListItems = document.all("RadSex"); //弹出RadioButtonList的Item的个数
var radListItesCount = radListItems.length - 1; var radListCheckedValue = "";
//遍历Item的Text和Value
for (var i = 1; i <= radListItesCount; i++) { if (radListItems[i].checked)
radListCheckedValue = radListItems[i].value; }
<asp:RadioButtonList ID="RadSex" runat="server" RepeatDirection="Horizontal">
<asp:ListItem Value="男">男</asp:ListItem>
<asp:ListItem Value="女">女</asp:ListItem>
</asp:RadioButtonList>用document.getElementById貌似取不到
你应该var radListItems = document.getElementById("RadSex").getElementsByTagName("input");
for (var i = 0; i < radListItems .length; i++) {
funcotion Register(){ //取得RadioButtonList的集合
var radListItems = document.all("RadSex"); //弹出RadioButtonList的Item的个数
var radListItesCount = radListItems.length - 1; var radListCheckedValue = "";
//遍历Item的Text和Value
for (var i = 1; i <= radListItesCount; i++) { if (radListItems[i].checked)
radListCheckedValue = radListItems[i].value; } //判断用户有没有选中RadioButtonList性别
if (radListCheckedValue == "") { alert("请选择性别"); }}</script>//RadioButtonList控件集
<asp:RadioButtonList ID="RadSex" runat="server" RepeatDirection="Horizontal">
<asp:ListItem Value="男">男</asp:ListItem>
<asp:ListItem Value="女">女</asp:ListItem>
</asp:RadioButtonList>
<script type="text/javascript">
function myfunction1() {
var s = document.getElementById("<%=RadSex.ClientID %>").getElementsByTagName("input");
for (i = 0; i < s.length; i++)
alert(s[i].checked + " : " + s[i].value);
}
function myfunction2() {
var s = document.getElementsByName("<%=RadSex.UniqueID%>");
for (i = 0; i < s.length; i++)
alert(s[i].checked + " : " + s[i].value);
}</script>
<asp:RadioButtonList ID="RadSex" runat="server" RepeatDirection="Horizontal">
<asp:ListItem Value="男">男</asp:ListItem>
<asp:ListItem Value="女">女</asp:ListItem>
</asp:RadioButtonList>
<input type="button" onclick="myfunction1()" value="方法1" />
<input type="button" onclick="myfunction2()" value="方法2" />
考虑几点
1. aspx页面通常只有1个form。
2.浏览器对表单内的元素是通过name进行定位的。
3.aspx服务器控件一定会生成name属性,值为UniqueID的值var radios = document.forms[0]["<%=RadSex.UniqueID%>"];
for(var i=0,l=radios.length;i<l;i++)
{
if(radios[i].checked)
{
alert(radios[i].value);
}
}
radListCheckedValue = radListItems[i].nextSibling.innerText;
在IE下也都可行·可是获取下有获取不到了·,纠结啊·
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<script type="text/javascript">
function isIE()
{ //ie?
if (window.navigator.userAgent.toLowerCase().indexOf("msie") >= 1)
return true;
else
return false;
} if (!isIE())
{ //firefox innerText define
HTMLElement.prototype.__defineGetter__("innerText",
function ()
{
var anyString = "";
var childS = this.childNodes;
for (var i = 0; i < childS.length; i++)
{
if (childS[i].nodeType == 1)
anyString += childS[i].tagName == "BR"
? "\r\n" : childS[i].textContent;
else if (childS[i].nodeType == 3)
anyString += childS[i].nodeValue;
}
return anyString;
});
HTMLElement.prototype.__defineSetter__("innerText",
function (sText)
{
this.textContent = sText;
});
}
</script>
</head>
<body>
<div id="myDiv">
<p>
ddd</p>
</div>
<script type="text/javascript">
alert(document.getElementById("myDiv").innerText);
</script>
</body></html>
for (var j = 0, len1 = el.length; j < len1; j++) {
if (el[j].checked) {
alert('text:'+nextSibling.innerHTML+',value:'+el[j].value);
}
}