【发布时间】:2011-11-30 13:30:34
【问题描述】:
如何从 JavaScript 触发服务器端按钮单击事件?
我试过这样:
document.getElementById("<%= ButtonID.ClientID %>").click();
但是没有用。我该怎么做?
【问题讨论】:
-
如果对您有帮助,请将答案标记为已接受。
标签: javascript c# asp.net
如何从 JavaScript 触发服务器端按钮单击事件?
我试过这样:
document.getElementById("<%= ButtonID.ClientID %>").click();
但是没有用。我该怎么做?
【问题讨论】:
标签: javascript c# asp.net
您可以将这一行放在 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('').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 进行显式回发。然后从服务器端检查该隐藏字段并执行任何必要的操作。
【讨论】:
document.FormName.btnSubmit.click();
为我工作。享受吧。
【讨论】:
$("#"+document.getElementById("<%= ButtonID.ClientID %>")).trigger("click");
【讨论】: