【问题标题】:ASP.net form getting JS errorASP.net 表单获取 JS 错误
【发布时间】:2012-06-13 22:49:47
【问题描述】:

我有一个 ASP.NET 表单 (C#),但是我单击了应该执行 JS 方法的此按钮,我收到错误“Microsoft JScript 运行时错误:'document.getElementById(...)' is null or not an对象”

这很奇怪,因为它应该可以工作:

                <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.,\-']+$" />

应该将文本框的值设置为“hi”的 JS 函数 readLicense

document.getElementById("DriverLast").value = "hi";

【问题讨论】:

    标签: javascript asp.net


    【解决方案1】:

    在标记中是否有 ID 为 DriverLast 的输入? ASP.NET 可能会将此控件的 ID 更改为它的容器 ID,即:_ctl_DriverLast。因此您可以使用ClientId 属性。

    试试:

    document.getElementById(<%=DriverLast.ClientId %>.value = "Hi";
    

    【讨论】:

    • 查看标记,您是否看到 ID 为 DriverLast 的元素?
    【解决方案2】:

    呈现的客户端 ID 不一定与服务器控件 ID 相同。您可以使用ClientIDMode 属性来更改此行为。

    document.getElementById("<%= DriverLast.ClientID %>").value = "hi";
    

    【讨论】:

    • 你能验证你脚本中的 id 是否与 html 元素的 id 匹配吗?
    • 我做到了,你是对的!当我转到我的 html 源时,id 似乎不同,我粘贴了 html 源文本框的 ID,没有错误!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    • 2010-09-19
    • 2011-01-03
    • 1970-01-01
    • 2012-05-14
    • 2012-02-25
    相关资源
    最近更新 更多