如何从JavaScript触发服务器端的按钮点击事件?
我尝试了以下代码:
document.getElementById("<%= ButtonID.ClientID %>").click();
但是没有用。我该怎么做?
如何从JavaScript触发服务器端的按钮点击事件?
我尝试了以下代码:
document.getElementById("<%= ButtonID.ClientID %>").click();
但是没有用。我该怎么做?
您可以将以下代码放入 JavaScript 函数中:
__doPostBack('btnSubmit','OnClick');
或者像这样做:
$('#btnSubmit').trigger('click');
var clickButton = document.getElementById("<%= btnClearSession.ClientID %>");
clickButton.click();
那个解决方案对我有效,但请记住,如果你的asp按钮具有
Visible="False"属性,则该解决方案将无效。如果要隐藏应通过该脚本触发的按钮,则应使用
<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"/>
我曾在两天内遇到这个问题,突然意识到我在一个提交按钮的javascript方法中使用了这个click方法(针对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();" 在Chrome浏览器中无法运行。但在IE和Firefox中可以正常工作。
然后我尝试了很多方法来在Chrome中执行 "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>
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);
}
$("#"+document.getElementById("<%= ButtonID.ClientID %>")).trigger("click");
document.FormName.btnSubmit.click();
对我来说可行。享受吧。
您可以从JavaScript代码中填充一个隐藏字段,并从JavaScript执行显式回发。然后在服务器端,检查该隐藏字段并执行必要的操作。
<asp:Button ID="BtnQuickSearch" runat="server" Text="Search"
OnClick="BtnQuickSearch_Click" ValidationGroup="none" />