Js中取RadioButtonList值的问题

问题描述

下面这段代码是在Js中取RadioButtonList的Text和Value,在大部分浏览器上都能正常获取到,可是在火狐(MozillaFirefox)浏览器下就取不到,有大侠知道为什么呢,忘高手来修正下,谢谢//取得RadioButtonList的集合varradListItems=document.all("RadSex");//弹出RadioButtonList的Item的个数varradListItesCount=radListItems.length-1;varradListCheckedValue="";//遍历Item的Text和Valuefor(vari=1;i<=radListItesCount;i++){if(radListItems[i].checked)radListCheckedValue=radListItems[i].value;}

解决方案

解决方案二:
document.getElementById("RadSex");
解决方案三:
别的浏览器不用document.all
解决方案四:
引用2楼net_lover的回复:

别的浏览器不用document.all

我勒个去,这样就直接取不到值了,我的是<asp:RadioButtonListID="RadSex"runat="server"RepeatDirection="Horizontal"><asp:ListItemValue="男">男</asp:ListItem><asp:ListItemValue="女">女</asp:ListItem></asp:RadioButtonList>用document.getElementById貌似取不到
解决方案五:
RadioButtonList生成的不一定是<inputtype=radio而是一个表格。你应该varradListItems=document.getElementById("RadSex").getElementsByTagName("input");for(vari=0;i<radListItems.length;i++){
解决方案六:
下面是完整的代码<script>funcotionRegister(){//取得RadioButtonList的集合varradListItems=document.all("RadSex");//弹出RadioButtonList的Item的个数varradListItesCount=radListItems.length-1;varradListCheckedValue="";//遍历Item的Text和Valuefor(vari=1;i<=radListItesCount;i++){if(radListItems[i].checked)radListCheckedValue=radListItems[i].value;}//判断用户有没有选中RadioButtonList性别if(radListCheckedValue==""){alert("请选择性别");}}</script>//RadioButtonList控件集<asp:RadioButtonListID="RadSex"runat="server"RepeatDirection="Horizontal"><asp:ListItemValue="男">男</asp:ListItem><asp:ListItemValue="女">女</asp:ListItem></asp:RadioButtonList>
解决方案七:
本帖最后由 net_lover 于 2011-12-02 09:15:26 编辑
解决方案八:
该回复于2011-12-02 09:21:49被版主删除
解决方案九:
如果你放在母板页中,还需要这样写才可以。<scripttype="text/javascript">functionmyfunction1(){vars=document.getElementById("<%=RadSex.ClientID%>").getElementsByTagName("input");for(i=0;i<s.length;i++)alert(s[i].checked+":"+s[i].value);}functionmyfunction2(){vars=document.getElementsByName("<%=RadSex.UniqueID%>");for(i=0;i<s.length;i++)alert(s[i].checked+":"+s[i].value);}</script><asp:RadioButtonListID="RadSex"runat="server"RepeatDirection="Horizontal"><asp:ListItemValue="男">男</asp:ListItem><asp:ListItemValue="女">女</asp:ListItem></asp:RadioButtonList><inputtype="button"onclick="myfunction1()"value="方法1"/><inputtype="button"onclick="myfunction2()"value="方法2"/>
解决方案十:
下面的代码兼容所有浏览器。考虑几点1.aspx页面通常只有1个form。2.浏览器对表单内的元素是通过name进行定位的。3.aspx服务器控件一定会生成name属性,值为UniqueID的值varradios=document.forms[0]["<%=RadSex.UniqueID%>"];for(vari=0,l=radios.length;i<l;i++){if(radios[i].checked){alert(radios[i].value);}}

解决方案十一:
[Quote=引用8楼net_lover的回复:]谢谢孟子兄,现在我获取他选中的文本内容,也就是选中的内容radListCheckedValue=radListItems[i].nextSibling.innerText;在IE下也都可行·可是获取下有获取不到了·,纠结啊·
解决方案十二:
IE中的获取文本方法innerText在firefox中不支持用Javascript重新定义了innerText方法使得在Firefox中也可以使用innerText方法并且此方法解决了firefox中空白字符的问题代码如下:<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><html><head><title></title><scripttype="text/javascript">functionisIE(){//ie?if(window.navigator.userAgent.toLowerCase().indexOf("msie")>=1)returntrue;elsereturnfalse;}if(!isIE()){//firefoxinnerTextdefineHTMLElement.prototype.__defineGetter__("innerText",function(){varanyString="";varchildS=this.childNodes;for(vari=0;i<childS.length;i++){if(childS[i].nodeType==1)anyString+=childS[i].tagName=="BR"?"rn":childS[i].textContent;elseif(childS[i].nodeType==3)anyString+=childS[i].nodeValue;}returnanyString;});HTMLElement.prototype.__defineSetter__("innerText",function(sText){this.textContent=sText;});}</script></head><body><divid="myDiv"><p>ddd</p></div><scripttype="text/javascript">alert(document.getElementById("myDiv").innerText);</script></body></html>

解决方案十三:
varel=document.getElementsByName('<%=RadSex.UniqueID%>');for(varj=0,len1=el.length;j<len1;j++){if(el[j].checked){alert('text:'+nextSibling.innerHTML+',value:'+el[j].value);}}

时间: 2024-10-26 20:21:57

Js中取RadioButtonList值的问题的相关文章

js中css的值怎么写我自己不知道该怎么做,烦死了~

问题描述 js中css的值怎么写我自己不知道该怎么做,烦死了~ 在CSS表单里每个属性的值都在冒号后,如margin:xx clolor:red写到js中值就在等号后面了,怎么写,特别是像none.black(定义颜色).left等等这些怎么写到 document.getElementById(id).style.属性=值;里面去呢?像black这样的值要加引号吗好像是正确,可是document.getElementById(id).style.margin=""1px"&q

我现在从数据库中取到值到Table,但是我想把第一列 地二列(全部相同)合并,怎么用for循环啊?

问题描述 请问大神,我现在从数据库中取到值到Table,但是我想把第一列地二列(全部相同)合并,怎么用for循环啊? 解决方案 解决方案二:第一列地二列(全部相同),这什么意思,合并又是什么意思,两列相加吗?解决方案三:select语句加DISTINCT解决方案四:我要是展示这样的的解决方案五:我这样循环前两列是对的,加上地三列地三个循环就不对了,求大神指教啦.拜谢.<tableborder="0"class="listtable"style="te

JS中取二维数组中最大值的方法汇总_javascript技巧

在JavaScript中可以通过内置的 Math.max() 的最大值,但是要从多重数组中取出最大值,还是有一定的难度. 问题描述 假设你有一个数组,而且这个数组中包含了数字的子数组,而我们要做的是从数组中的每个子数组中返回其最大的那个最大数. 基本解决方案 function largestOfFour(arr) { var results = []; // 创建一个results变量来存储 // 创建一个外层循环,遍历外层数组 for (var n = 0; n < arr.length; n

javascript-调用的js 为何取不到值?

问题描述 调用的js 为何取不到值? 代码:111.js document.write("<script language='javascript' src='http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=222.5.142.25'></script>"); document.write("<script>var gj=remote_ip_info.c

js怎么取这个传过来的值

问题描述 js怎么取这个传过来的值 后台程序如图,info的值为 [model.Info@69a3f7e3 {sjd:8:00-9:00, yyid:20151014021, doctorid:2, name:赵一, keshi:内科, yydate:20151014, ifchecked:0}, model.Info@e2d2e9eb {sjd:9:00-10:00, yyid:20151014022, doctorid:2, name:赵一, keshi:内科, yydate:2015101

JS中如何设置readOnly的值

 本篇文章主要是对JS中设置readOnly值的方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 在网页中我们有时候需要控制文本输入框的"输入状态",一些关键属性是不能修改的,这个时候需要将文本输入框的readonly属性设置为False,在网页中我们可以使用   <input name="txt_name" type="text" readonly="readonly" id="txt_Statu

js中function函数设置参数有默认值

在php中我可以这样写  代码如下 复制代码 function abcccc ($a=1,$b=2){   return $a+$b; } 调用可直接  代码如下 复制代码 abccc() abccc(1) abccc(1,1) 但在js中这样写提示提示 变量未定义undefined了,但我觉得在js中的默认值应该是 undefined 在函数内预设数可以用 arguments[i] i就是你参数的位置 第一个为0 所以要设定 flag 的默认值 则可以这么写  代码如下 复制代码 functi

js中调用后台变量,一定时间后后台变量重新赋值,但是前台js中得到的不变

问题描述 用了一个timer控件,每隔30秒重新调用后台的一个函数给一个隐藏控件赋值,然后在前台js中获取该值,但是30秒刷新的时候,前台控件的值一直是第一次得到的,不变,纠结了好几天,有知道的高手吗? 解决方案 解决方案二:有知道的同志吗?给说说吧!解决方案三:让你刷成第一次的了解决方案四:2楼您说的不太明白,我没刷呀?您能给说说我应该怎么做吗?

40-.net如何从数据库中的一个表中取值

问题描述 .net如何从数据库中的一个表中取值 假设这是我数据库里的一张表(数据库是oracle),我该如何取得这些数将他们传给jsonObj.Rows,求教各位大神,能给个具体的实现过程吗? 解决方案 sonObj.Rows是你自己组装的json对象吧,你首先要查询数据库,这个自己看msdn把,很简单,获取值后开始组织json就行了 解决方案二: 自己读取数据后,通过服务器端代码赋值给aspx上的script标签就行,注意<%%>这种代码不能放js文件里面,必须是在aspx页面里面才能解析运