【发布时间】: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