0

这是我的代码:

// 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%>")

不是吗?

我需要启用某些东西吗

4

2 回答 2

4

默认情况下,ID 的设置编译时间并不总是等于运行时的 ID。

当您使用框架 4.0 时,您可以使用ClientIDMode控件上的属性。

ClientIDMode="Static" 

阅读这篇博客文章,了解有关 ClientIDMode 属性的更多信息。

于 2013-05-29T13:02:46.587 回答
4

基本上,由于控制树处理,客户端 ID 与服务器端不同。ASP.Net 生成客户端,它们是控件 ID 的层次结构的组合。这将确保 ID 的唯一性。

例如,如果您的控件在面板“ pnlABC”中,并且您的复选框名为“ chkGenerali”,则输出客户端ID 将为“ pnkABC_chkGenerali”。将此逻辑扩展到整个控件树以获取实际 ID。

解决问题的最简单方法是将代码替换为:

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

这将在渲染时生成实际的客户端 ID。

于 2013-05-29T13:07:01.260 回答