簡體   English   中英

為什么$ find不起作用?

[英]Why $find doesn't work?

這是我的代碼:

// user control
<asp:CheckBox ID="chbGenerali" runat="server" />

// js
var prova = $find("chbGenerali");
console.log(prova.checked);

但我得到TypeError: prova is null 它應該是一種:

document.getElementById("<%=chbGenerali.ClientID%>")

是不是

我需要啟用某些功能嗎

默認情況下,ID的設置編譯時間並不總是等於運行時的ID。

在使用Framework 4.0時,可以在控件上使用ClientIDMode屬性。

ClientIDMode="Static" 

閱讀博客文章,以獲取有關ClientIDMode屬性的更多信息。

基本上,由於控制樹的處理,客戶端ID與服務器端ID不同。 ASP.Net生成客戶端,這些客戶端是控件ID的層次結構的組合。 這將確保ID的唯一性。

例如,如果您的控件位於“ pnlABC ”面板中,並且您的復選框名為“ chkGenerali ”,則輸出clientID將為“ pnkABC_chkGenerali ”。 將此邏輯擴展到整個控制樹以獲取實際ID。

解決問題的最簡單方法是將代碼替換為:

var prova = $find("<%= chbGenerali.ClientID%>");

它將在渲染時生成實際的客戶端ID。

暫無
暫無

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

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