我的aspx文件中有以下Radio Butttons。
<asp:RadioButton ID="rdoOption1" runat="server" GroupName="grpAnswers"/>
<asp:RadioButton ID="rdoOption2" runat="server" GroupName="grpAnswers"/>
<asp:RadioButton ID="rdoOption3" runat="server" GroupName="grpAnswers"/>
<asp:RadioButton ID="rdoOption4" runat="server" GroupName="grpAnswers"/>
我想在按钮的点击中设置javascript中的文字 Javascript代码如下。
document.getElementById("rdoOption1").innerHTML = "sometext";
我也尝试使用Text,nodevalue而不是innerHTML,没有用。 Plz帮助。
答案 0 :(得分:2)
您需要在javascript中使用ClientID
,而不是使用服务器端ID。由于asp.net生成id
时服务器端html
已更改。您还可以:在javascript语句末尾使用:而不是半冒号。使用值而不是innerHTML,因为它不适用于输入html元素。
document.getElementById("<%= rdoOption1.ClientID %>").value = "sometext";
如果您拥有.Net Framework 4及更高版本,则可以使用Control.ClientIDMode="static"将服务器ID保留在客户端。
编辑您需要注意的第二件事是确保您尝试访问的html元素已添加到DOM
。您可以通过将脚本放在您尝试访问的html元素之后来执行此操作。最好的位置就在结束体标记</body>
<script type="text/javascript>
document.getElementById("rdoOption1").innerHTML = "sometext";
</script>
</body>
答案 1 :(得分:1)
Atlast我找到了解决方案。
实际上asp:RadioButton在浏览器中呈现如下,
<input name="grpAnswers" id="rdoOption1" type="radio" value="rdoOption1"/>
<label for="rdoOption1">
注意:只有在为asp:RadioButton的Text属性指定一些值时才会生成标签。
所以,我已按如下方式更改了我的代码,
<asp:RadioButton ID="rdoOption1" runat="server" GroupName="grpAnswers" Text=" "/>
我的Javascript代码为该asp设置Text:RadioButton如下,
document.getElementById("rdoOption1").nextSibling.innerHTML = "someText";
这个对我有用。感谢那些花费宝贵时间回答我的问题的人。 :)
答案 2 :(得分:0)
ASP.Net控件是服务器端控件,而不是HTML等客户端控件。
他们的实际ID是在运行时期间生成的,而不是之前的。
所以,你的语法应该是这样的:
document.getElementById("<%= rdoOption1.ClientID %>").innerHTML = "sometext";
答案 3 :(得分:0)
查看此帖子:how-to-change-the-text-of-a-radio-button。
我认为您不能使用单选按钮的innerText更改文本。