【问题标题】:setting asp:RadioButton Text from javascript设置 asp:RadioButton Text 从 javascript
【发布时间】:2014-05-16 06:19:55
【问题描述】:

我的 aspx 文件中有以下单选按钮。

<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,没用。请帮忙。

【问题讨论】:

    标签: javascript asp.net radio-button


    【解决方案1】:

    您需要在 javascript 中使用 ClientID 而不是使用服务器端 id。因为当 html 由 asp.net 生成时,服务器端 id 被更改。您还有 : 而不是 javascript 语句末尾的分号。使用 value 而不是 innerHTML,因为这不适用于输入 html 元素。

    document.getElementById("<%= rdoOption1.ClientID %>").value = "sometext";
    

    如果您有 .Net Framework 4 及更高版本,则可以使用 Control.ClientIDMode="static" 将服务器 ID 保留在客户端。

    编辑 第二件您必须注意的事情是确保您尝试访问的 html 元素已添加到 DOM。您可以通过将脚本放在您尝试访问的 html 元素之后来执行此操作。最好的位置是在结束正文标签&lt;/body&gt;

    之前
         <script type="text/javascript>
               document.getElementById("rdoOption1").innerHTML = "sometext";
         </script>
    </body>
    

    【讨论】:

    • 嗨,阿迪尔...我只使用 .net 框架 4...默认的 ClientIDMode 是 static oly na???即使我检查了浏览器。它正在使用相同的 id 进行渲染 .. 可能有不同的问题??请帮助
    • 将脚本放在结束标记之前,您是否会收到警报以确保您的脚本正常工作。
    • 我尝试过使用不同的 ID,tats 是同一页面中的 div 容器 ID。它可以正常工作。但不能使用此单选按钮 id。错误类似于 htmlfile: Unknown runtime错误
    • 用ClientID代替ClientIDMode怎么样?
    • Hai adil ...我认为问题出在 asp:RadioButton 上,因为我在与以前相同的地方使用了 asp:Label(也是服务器控件)...工作正常.. .我的疑问是我们可以使用innerHTML在asp:radiobutton中提供文本还是我们需要其他一些......请帮助..除了你之外我没有希望...... :)
    【解决方案2】:

    我终于找到了解决方案。
    其实 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:RadioButton 设置文本如下,

    document.getElementById("rdoOption1").nextSibling.innerHTML = "someText";
    

    这个对我有用。感谢所有花费宝贵时间回答我的问题的人。 :)

    【讨论】:

      【解决方案3】:

      ASP.Net 控件是服务器端控件,而不是 HTML 等客户端控件。

      他们的实际 ID 是在 运行时而不是事先生成的。

      所以,你的语法应该是这样的:

      document.getElementById("<%= rdoOption1.ClientID %>").innerHTML = "sometext";
      

      【讨论】:

        【解决方案4】:

        查看这篇文章:how-to-change-the-text-of-a-radio-button

        我认为您不能使用单选按钮的 innerText 更改文本。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-12-11
          • 1970-01-01
          • 2012-10-07
          • 2012-04-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-04-04
          相关资源
          最近更新 更多