我有点击一个按钮给我的JavaScript代码。 它在机器1上托管时工作,但托管在机器2上时,.GetElementByID调用返回Null。getElementById在一个环境中工作,但不在另一个环境中
JS代码看起来像这样:
function ClickAButtonForMe() {
var btn = null;
var btnClientID = '<%= btnReset.ClientID %>';
//this comes back with a valid clientID on **both** machines
alert("btnClientID=/" + btnClientID + "/, nodevalue=/" + nodeValue + "/");
if (0 < btnClientID.length) {
btn = document.getElementById(btnClientID);
}
if (btn != null) {
//on machine 1, this works as expected
btn.click();
}
else {
//on machine 2, i come here
alert("button not found");
}
}
在我的ascx文件中的按钮声明如下所示:
<div id="div_Reset" class="eventManagementButtonWrapper" runat="server">
<div>
<asp:Button class="eventManagementButton" ID="btnReset" ValidationGroup="None" runat="server"
Text="Reset" />
</div>
</div>
换句话说,我可以得到一个clientId我的按钮均为环境。但是,当我尝试实际抓取按钮本身时,它在机器2上失败。
任何人都可以提出可能的事情来看看,当找出这种差异的原因?我已经尝试将ClientIDMode更改为“Static”,除了在第一条调试消息中更改clientID外,它什么也不做。
你想按钮做什么?有些方法不依赖于抓取元素ID。 – 2012-02-28 20:08:06
机器1和机器2有什么不同?另外,这只是意味着在IE中工作? 'click()'是特定于IE的。 – 2012-02-28 20:08:19
@Diodeus - 更大的图片是屏幕上有两个TreeView控件。单击该按钮可将选定节点从左侧的树中滑入右侧的树中。我试图通过在用户点击树本身时触发这个动作来自动滑动它们。该功能在我的本地机器上运行 - 但不在部署机器上运行。 – JosephStyons 2012-02-28 20:16:54