asp.net按钮 - JS点击不起作用

时间:2014-10-05 10:51:28

标签: javascript c# html asp.net click

我试图从JS调用C#函数。我不能用ajax。我试图创建一个ASP.NET按钮,当它单击它调用C#函数并从JS调用click函数时:

在HTML上:

<asp:Button runat="server" ID="UploadButton" OnClick="Upload_Click" />

JS:

alert("Before CLICK");
document.getElementById("UploadButton").click();
alert("After CLICK");

ASP.NET:

protected void Upload_Click(object sender, EventArgs e)
{
    //CODE
}

问题是来自JS的click事件无法正常工作。我试图在JS代码的第一行之后写一个警报来查看代码是否丰富到该行,但我只能看到"After CLICK"

我已经看到了这个答案:Button's .click() command not working in Chrome但我没有完全理解这一点。

2 个答案:

答案 0 :(得分:1)

您应该将ClientIDMode设置为Static

<asp:Button runat="server" ID="UploadButton" ClientIDMode="Static" OnClick="Upload_Click" />

否则,它会有一些由ASP.NET生成的随机id,将CLientIDMode设置为Static,你要说ASP.NET不要干涉你的id并保持它们完整。

其他选项是使用ClientID属性,该属性具有自动生成的id的值,如

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

答案 1 :(得分:0)

试试这个

在ASP.net中,当页面呈现时,它会改变它'containerName...YourButtonName'之类的内容 因此,使用ClientID,您将获得Button的实际ID。

document.getElementById('#<%= UploadButton.ClientID %>').click();

或者你可以使用ClientIDMode="Static",它会呈现你在.aspx

中写的相同ID
<asp:Button runat="server" ID="UploadButton"
 ClientIDMode="Static" OnClick="Upload_Click" />