编程语言
首页 > 编程语言> > javascript – getElementById在单独的js文件中找不到ASP.net控件

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设置为可预测或静态.

Here is an example.

以下是代码.这不是一个好例子,但我希望你能得到这个想法.

注意:使用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