设置asp:来自javascript的RadioButton文本

时间:2014-04-04 05:27:39

标签: javascript asp.net radio-button

我的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帮助。

4 个答案:

答案 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更改文本。