簡體   English   中英

為什么我得到一個“無法讀取屬性”點擊'null錯誤

[英]Why do I get a "Cannot read property 'click' of null error

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");
    }

但是當我在文本框中按Enter鍵或點擊按鈕時,我得到上面的錯誤。

我該如何解決錯誤。

太奇怪了,當我檢查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;" />

使用Page指令設置靜態ID

<%@ Page ClientIDMode="static" %>

這應該適用於你的id選擇器。

另外,檢查您的ImageButton渲染HTML。 如果一切都設置正確,它應該保留ID

您可以將JS功能更改為:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM