如何在ASP.NET中从JavaScript激发按钮单击事件

How to fire a button click event from JavaScript in ASP.NET

本文关键字:按钮 单击 事件 JavaScript 中从 ASP NET      更新时间:2023-09-26

如何从JavaScript触发服务器端按钮单击事件?

我试过这样:

document.getElementById("<%= ButtonID.ClientID %>").click();

但没有用。我该怎么做?

您可以将这一行放在JavaScript函数中:

__doPostBack('btnSubmit','OnClick');

或者这样做:

$('#btnSubmit').trigger('click');
var clickButton = document.getElementById("<%= btnClearSession.ClientID %>");
clickButton.click();

这个解决方案对我有效,但请记住,如果你的asp按钮有,它就不会起作用

可见="错误">

要隐藏应该用该脚本触发的按钮,您应该用<div hidden></div> 隐藏它

我使用了下面的JavaScript代码,它很有效。。。

var clickButton = document.getElementById("<%= btnClearSession.ClientID %>");
clickButton.click();

这里发布的所有解决方案都不适合我,这是我解决问题的最终方案。

// In Server Side code
protected void Page_Load(object sender, EventArgs e)
{
    Page.GetPostBackEventReference(hiddenButton);
}
// Javascript
function SetSaved() {
    __doPostBack("<%= hiddenButton.UniqueID %>", "OnClick");
}
// ASP
 <asp:Button ID="hiddenButton" runat="server" OnClick="btnSaveGroup_Click" Visible="false"/>

我在两天内解决了这个问题,突然我意识到我在提交按钮(在html提交按钮中(javascript方法中使用了这个点击方法(用于asp按钮(。。。

我的意思是->

我有一个html提交按钮和一个asp按钮,如下所示:

<input type="submit" value="Siparişi Gönder" onclick="SendEmail()" />
<asp:Button ID="sendEmailButton" runat="server" Text="Gönder" OnClick="SendToEmail" Visible="True"></asp:Button>

SendToEmail((是Default.aspx中的服务器端方法SendEmail((是一个类似于以下的javascript方法:

<script type="text/javascript" lang="javascript">
   function SendEmail() {
            document.getElementById('<%= sendEmailButton.UniqueID %>').click();
            alert("Your message is sending...");
        }
</script>

这个"document.getElementById('<%=sendEmailButton.UniqueID%>'(.click((;"方法在Crome中不起作用。它适用于IE和Firefox。

然后我尝试了很多在Crome中执行"SendToEmail(("方法的方法。

然后我突然改变了html提交按钮-->只是像这样的html按钮,现在它正在工作:

<input type="button" value="Siparişi Gönder" onclick="SendEmail()" />

祝你有美好的日子。。。

我可以这样做:

在html按钮执行的javascript连接内部:

document.getElementById("<%= Button2.ClientID %>").click();

div内的ASP按钮:

<div id="submitBtn" style="display: none;">
   <asp:Button ID="Button2" runat="server" Text="Submit" ValidationGroup="AllValidators" OnClick="Button2_Click" />
</div>

除了下面的代码不执行之外,所有内容都从.cs文件运行。没有消息框并重定向到同一页面(刷新所有框(:

 int count = cmd.ExecuteNonQuery();
 if (count > 0)
 {
   cmd2.CommandText = insertSuperRoster;
   cmd2.Connection = con;
   cmd2.ExecuteNonQuery();
   string url = "VaccineRefusal.aspx";
   ClientScript.RegisterStartupScript(this.GetType(), "callfunction", "alert('Data Inserted Successfully!');window.location.href = '" + url + "';", true);
  }

有什么想法为什么这些行不能执行吗?

您可以从JavaScript代码中填充一个隐藏字段,并从JavaScript进行显式回发。然后从服务器端,检查hiddenfield并执行任何必要的操作。

document.FormName.btnSubmit.click(); 

对我有用。享受吧。

$("#"+document.getElementById("<%= ButtonID.ClientID %>")).trigger("click");

我遇到的问题是没有指定验证组。我添加了ValidationGroup=";none";根据以下内容,它起到了作用。

<asp:Button ID="BtnQuickSearch" runat="server" Text="Search" 
OnClick="BtnQuickSearch_Click" ValidationGroup="none" />

我必须提到的是,我在页面上还有另外两个带有按钮的表单,它们都指定了自己的验证组。该按钮没有指定验证组,onclick事件也没有触发。