我有一个ASP.NET表单(C#),但我单击此按钮应执行JS方法我得到错误“Microsoft JScript运行时错误:'document.getElementById(...)'为null或不是对象“
这很奇怪,因为它应该有效:
<asp:LinkButton ID="btnDriverPopulate" runat="server" Text="" Height="55px" Width="172px" CssClass="btnMTO"
OnClientClick="readLicense()" ToolTip="Check Driver" />
文本框代码
<asp:TextBox ID="DriverLast" runat="server" Width="180px" Text='<%# Eval("Last") %>' ToolTip="Enter driver last name"></asp:TextBox>
<cc:TextBoxValidator ID="valDriverLast" runat="server" AllowBlank="false" Display="dynamic" ControlToValidate="DriverLast" ValidationGroup="ValGrpDriver"
CorrectFormat="Please enter in alphanumeric characters only." FieldName="Last Name" RegString="^[a-zA-Z0-9\s.,\-']+$" />
JS函数readLicense,应该将文本框的值设置为“hi”
document.getElementById("DriverLast").value = "hi";
答案 0 :(得分:2)
在标记中是否有一个id为DriverLast的输入? ASP.NET可能会将此控件的ID更改为其容器ID,即: _ctl _DriverLast。因此,您可以使用ClientId
属性。
尝试:
document.getElementById(<%=DriverLast.ClientId %>.value = "Hi";
答案 1 :(得分:1)
呈现的客户端ID不一定与服务器控件ID相同。您可以使用ClientIDMode
属性更改此行为。
document.getElementById("<%= DriverLast.ClientID %>").value = "hi";