isp*_*iro 3 html javascript asp.net asp.net-4.0
当我在页面标记中有这个时,它工作正常:
<script type="text/javascript">
function bought1()
{
var s = '<%= Button2.ClientID %>';
var v = document.getElementById(s);
v.click();
}
</script>
Run Code Online (Sandbox Code Playgroud)
但是,当我在一个单独的文件一样的东西,即使函数被执行-的价值v遗体null.
我尝试了一个简单的div,它确实找到了div.
为什么不找到ASP.net按钮?
编辑
我甚ClientIDMode="Static"至加入了Button.没变.
<%= Button2.ClientID %>是一个服务器代码.您无法在单独的javascript文件中运行服务器代码.
如果要从单独的javascript访问服务器控件ID,则需要将其设置ClientIDMode为可预测或静态.
以下是代码.这不是一个好例子,但我希望你能得到这个想法.
注意:确保使用时没有相同的ID ClientIDMode="Static".否则,Ids会发生碰撞.例如,一个在主页面中,一个在内容页面中.
<script src="/JavaScript1.js"></script>
<asp:Button runat="server" ID="Button1" ClientIDMode="Static"
Text="I am a button" />
<div onclick="bought1()">Click Me</div>
Run Code Online (Sandbox Code Playgroud)
function bought1() {
var s = 'Button1';
var v = document.getElementById(s);
v.click();
}
Run Code Online (Sandbox Code Playgroud)
