ASP.NET控件如何执行getElementById操作

3

我在页面上有一个元素。

<asp:Button ID="buttonToFind" runat="server" OnClick="SomeProcess" />

在 JavaScript 中,我正在尝试使用以下代码查找此控件:

document.getElementById("buttonToFind");

然而,它似乎找不到控件。我的理解是,asp:Button会被更改为一个input元素?这个input有一个新的ID,其中包含原始ID,但还有很多额外的字符,因此我无法在页面上找到原始ID。

这样正确吗?

另外,考虑到这一点,我该如何指定正确的ID进行搜索?

4个回答

3

1

你的理解是正确的。

如果JS位于ASPX/ASCX标记上,这将起作用:

document.getElementById('<%= buttonToFind.ClientID %>');

如果JS是外部的,你需要额外的工作(例如使用一个字面量来保存ID,或者注册一个脚本)。

请确保您的.NET语言是VB.NET,否则会出现错误。(C#区分大小写。) - jordanbtucker

0

任何服务器控件都会被赋予新的客户端ID,因此您可以使用任何要传递到Javascript的控件的ClientId :)

document.getElementById('<%= buttonToFind.ClientID %>'); 

应该是你的答案


1
一个问题的答案与其他三个答案完全相同,而且是在其他三个答案发布后三个小时才发布的,为什么它会被标记为正确答案?我很困惑。 - RPM1984
1
如果操作者在3个小时后检查他的问题,如果SO按“最新”排序,他只会看到它作为第一个响应。我认为它应该默认按“最旧”排序。 - palswim

0
你需要获取服务器控件的客户端 ID:
document.getElementById("<%=buttonToFind.ClientID%>");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接