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

本文关键字:不起作用 -JS net 按钮 asp | 更新日期: 2023-09-27 18:25:32

我正在尝试从JS调用C#函数。我不能使用ajax。我试着创建一个ASP.NET按钮,当它点击时,它会调用C#函数,并从JS:调用点击函数

关于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中的点击事件不起作用。我试着在JS代码的第一行之后写一个警告,看看代码是否丰富到那一行,但我只能看到"After CLICK"

我看到了这个答案:按钮';s.click()命令在Chrome中不起作用,但我不太明白。

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

您应该将ClientIDMode设置为Static

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

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

另一种选择是使用ClientID属性,该属性将具有自动生成的id(如)的值

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

尝试这个

在ASP.net中,当页面呈现时,它会像'containerName...YourButtonName'一样更改它因此,使用ClientID,您将获得按钮的实际ID。

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

或者您可以使用ClientIDMode="Static",它将呈现与您在.aspx 中所写相同的ID

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