为什么$find不起作用?
本文关键字:不起作用 find 为什么 | 更新日期: 2023-09-27 18:15:48
这是我的代码:
// 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。
当你使用框架4.0时,你可以在控件上使用ClientIDMode
属性。
ClientIDMode="Static"
关于ClientIDMode属性的更多信息,请阅读本文。
基本上,由于控制树处理,客户端ID与服务器端不相同。ASP。Net生成客户端,它们是控件Id的层次结构的组合。这将确保id的唯一性。
例如,如果您的控件在面板"pnlABC
"中,并且您的复选框命名为"chkGenerali
",则输出的clientID将为"pnkABC_chkGenerali
"。将此逻辑扩展到整个控制树以获得实际的ID。
解决这个问题最简单的方法是将代码替换为:
var prova = $find("<%= chbGenerali.ClientID%>");
,它将在渲染时生成实际的客户端ID