如何从ASP.NET中的JavaScript触发按钮单击事件

时间:2011-10-04 09:59:56

标签: javascript c# asp.net

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

我试过这样:

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

但没用。我该怎么办?

9 个答案:

答案 0 :(得分:43)

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

__doPostBack('btnSubmit','OnClick');

或者做这样的事情:

$('#btnSubmit').trigger('click');

答案 1 :(得分:18)

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

该解决方案适用于我,但请记住,如果您的asp按钮

,它将无法正常工作
  

可见= “假”

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

隐藏该按钮

答案 2 :(得分:15)

我使用了下面的JavaScript代码,它可以运行......

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

答案 3 :(得分:5)

此处发布的解决方案都不适合我,这是我最终解决问题的方法。

// 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"/>

答案 4 :(得分:3)

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

我的意思是 - &gt;

我有一个html提交按钮和一个像这样的asp按钮:

&#13;
&#13;
<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>
&#13;
&#13;
&#13;

SendToEmail()是Default.aspx中的服务器端方法 SendEmail()是一个像这样的javascript方法:

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

这个&#34; document.getElementById(&#39;&lt;%= sendEmailButton.UniqueID%&gt;&#39;)。click();&#34;方法在Crome中不起作用。它在IE和Firefox中运行。

然后我尝试了很多方法来执行&#34; SendToEmail()&#34; Crome中的方法。

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

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

度过愉快的时光......

答案 5 :(得分:1)

我可以这样做:

由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);
  }

为什么这些线条不能执行的任何想法?

答案 6 :(得分:0)

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

答案 7 :(得分:0)

document.FormName.btnSubmit.click(); 

适合我。享受。

答案 8 :(得分:0)

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