javascript – getElementById在单独的js文件中找不到ASP.net控件
作者:互联网
当我在页面标记中有这个时,它工作正常:
<script type="text/javascript">
function bought1()
{
var s = '<%= Button2.ClientID %>';
var v = document.getElementById(s);
v.click();
}
</script>
但是当我在一个单独的文件中有相同的东西时,即使该函数被执行 – v的值仍为null.
我尝试了一个简单的div,它确实找到了div.
为什么不找到ASP.net按钮?
编辑
我甚至在Button中添加了ClientIDMode =“Static”.没变.
解决方法:
<%= Button2.ClientID%>是一个服务器代码.您无法在单独的javascript文件中运行服务器代码.
如果要从单独的javascript访问服务器控件ID,则需要将ClientIDMode设置为可预测或静态.
以下是代码.这不是一个好例子,但我希望你能得到这个想法.
注意:使用ClientIDMode =“Static”时,请确保没有相同的ID.否则,Ids会发生碰撞.例如,一个在主页面中,一个在内容页面中.
ASPX
<script src="/JavaScript1.js"></script>
<asp:Button runat="server" ID="Button1" ClientIDMode="Static"
Text="I am a button" />
<div onclick="bought1()">Click Me</div>
Javascript文件
function bought1() {
var s = 'Button1';
var v = document.getElementById(s);
v.click();
}
标签:javascript,asp-net,asp-net-4-0,html 来源: https://codeday.me/bug/20190713/1450128.html