[英]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.