1

大家好,

我正在设计一个用户控件,简单地说它包含一个 asp:hiddenfield 控件,我将通过这样的 JavaScript 函数访问它

function doAnyThing
{
    var myVar = document.getElementById("myHiddenFiled");
}

但是当我跟踪我的代码时,我发现 myVar 分配给 null,这有关系吗

document.getElementById()

方法用于用户控制文件(.ascx)或常规(.aspx)文件,考虑到它在(.aspx)文件中正确工作

4

2 回答 2

9

您必须通过 ClientID 设置控件的最终 id,这取决于页面的结构。试试这个:

function doAnyThing
{
    var myVar = document.getElementById("<%= yourControlServerID.ClientID %>");
}

显然这个函数需要放在.aspx文件中。我建议你改用像 jQuery 这样的框架,它允许你通过更复杂的选择器来检索控件。本案将通过以下方式解决:

$("[id$=yourControlServerID]");

您甚至可以将您的 javascript 代码放在外部 .js 文件中。

于 2009-01-13T10:39:46.520 回答
2

为了简化你可以使用:

jQuery

$("<%= yourControlServerID.ClientID %>"). ....

ASP.NET JavaScript 注释:

var myVar = $get("<%= yourControlServerID.ClientID %>");

ASP.NET JavaScript 注释代码与以下相同:

var myVar = document.getElementById("<%= yourControlServerID.ClientID %>")
于 2009-01-13T10:44:42.280 回答