【问题标题】:Javascript function to change the value of an ASP Textbox? [duplicate]Javascript函数改变一个ASP文本框的值? [复制]
【发布时间】:2014-12-08 16:56:17
【问题描述】:

这有点奇怪。我的代码中有这段 ASP:

<td style="line-height: 230%;">
<asp:TextBox ID="txtePro" runat="server" CssClass="textbox" Font-Size="Small"
    Height="18px" Width="100px" Visible="False" Wrap="False" 
    OnTextChanged="txtEPro_OnLeave" OnFocus="txtEPro_OnFocus()" 
    AutoPostBack="true"></asp:TextBox>
<asp:MaskedEditExtender ID="MeeePro" runat="server" Mask="9999999" MaskType="None"
    TargetControlID="txtePro" PromptCharacter="_" />
<asp:MaskedEditExtender ID="MeePRD" runat="server" Mask="999999" MaskType="None"
    TargetControlID="txtePro" PromptCharacter="_" />

我在同一个 ASP 文件中也有以下功能:

<script type = "text/javascript">

    function txtEPro_OnFocus() {
        var elem = document.getElementById('txtePro');
        elem.value = "";

        alert("Hello there");
    }

</script>

如果我注释掉 Javascript 函数的前 2 行,我会收到一个提示框,上面写着“Hello there”。所以,我知道该函数在 OnFocus 事件中触发。但是,当我将前两行放回函数时,它说找不到“txtePro”。它的错误

elem.value = "";

一行并说,

Default.aspx 中第 176 行第 13 列未处理的异常

0x800a138f - Microsoft JScript 运行时错误:无法设置 属性“值”:对象为空或未定义

如果我将鼠标悬停在“elem”上,它会将值显示为“NULL”。

有什么想法吗?

【问题讨论】:

  • 请记住,默认情况下,ASP.NET 会破坏 ID - 元素的客户端 ID 几乎可以肯定 不是 txtePro,而是someContainerID_someParentID_txtePro,即为什么 JavaScript 找不到。

标签: javascript c# asp.net


【解决方案1】:

文本框的 ID 由 ASP.NET 更改,因此在服务器上呈现后不会是 'txtePro'。不要在 JS 函数中引用它,而是尝试使用内联 C# 来获取正确的 ID。

function txtEPro_OnFocus() {
    var elem = document.getElementById('<%= txtePro.ClientID %>');
    elem.value = "";

    alert("Hello there");
}

【讨论】:

  • 像冠军一样工作。谢谢!
猜你喜欢
  • 1970-01-01
  • 2020-04-05
  • 2012-10-04
  • 1970-01-01
  • 2013-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多