javascript - 为什么会出现 "Cannot read property ' click' of null 错误

标签 javascript c# asp.net

BODY 标签内:

<asp:Panel ID="nmSearch" CssClass="searchBox" runat="server" DefaultButton="HiddenSearchNM">
    <input type="text" runat="server" value="" placeholder="Search" id="searchB" class="styledTB searchB floatLeft" />
    <a href="JavaScript:void(0);" onclick="SearchNMClick();" title="Search" class="styledBtnSearch searchAnchor floatLeft defaultLinks">
        <asp:Image ImageUrl="~/images/searchWhite.png" CssClass="searchImg" runat="server" ToolTip="Search" AlternateText="Search" />
    </a>
    <asp:ImageButton ID="HiddenSearchNM" runat="server" CssClass="hideContent" ClientIDMode="Static" />
</asp:Panel>

HEAD 标签内:

<script>
function SearchNMClick() {
    document.getElementById('HiddenSearchNM').click();
}
</script>

我在控制台中看到以下错误:

Uncaught TypeError: Cannot read property 'click' of null
SearchNMClick
onclick

后面的 C# 代码将通过 Enter 或点击触发搜索页面:

protected void HiddenSearchNM_Click(object sender, EventArgs e)
    {
        //MessageBox.Show("SEARCH NM");
        strSMain = searchB.Value;
        Response.Redirect("results.aspx?searchtext=" + strSMain +"&folderid=0&searchfor=all&orderby=title&orderdirection=ascending");
    }

但是,当我在文本框中按回车键或单击按钮时,出现上述错误。

如何解决错误。

太奇怪了,当我检查 HTML 源代码时,我看到了这个(不确定为什么要更改 ID):

<input type="image" name="ctl00$CUSTOM_Area_Top$HiddenSearchNM" id="ctl00_CUSTOM_Area_Top_HiddenSearchNM" class="hideContent" ClientIDMode="Static" src="" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$CUSTOM_Area_Top$HiddenSearchNM&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" style="border-width:0px;" />

最佳答案

您可以将 JS 函数更改为:

function SearchNMClick() {
    document.getElementById('<%# HiddenSearchNM.ClientID %>').click();
}

关于javascript - 为什么会出现 "Cannot read property ' click' of null 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27490678/

相关文章:

c# - Unity3D 旋转未按预期运行

javascript - ASP.NET URL 编码不带 ?或变量名

asp.net - 到期时自动刷新 ASP.NET 输出缓存

javascript - 无法在 Angular 6 中添加 Bootstrap 4

C# 打开一个窗体并关闭它

javascript - 将 Accordion 旋转 90 度

c# - 将对象分配给c#中的treeview子节点以识别父节点

asp.net - 正则表达式密码验证器

javascript - 使用集群将 Socket.IO 扩展到多个 Node.js 进程

javascript - 如何使用 elasticsearch.js 和 Angular 在 Elasticsearch 上搜索嵌套对象