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

IT技术 javascript c# asp.net
2021-02-20 20:04:01

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

我试过这样:

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

但是没有用。我该怎么做?

6个回答

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

__doPostBack('btnSubmit','OnClick');

或者做这样的事情:

$('#btnSubmit').trigger('click');
您忘了提及第二个示例需要 jQuery,而且 ASP Net Forms 永远不会生成如此好的 id。
2021-04-20 20:04:01
2021-05-03 20:04:01
@pratapk 你能更新评论链接吗(也许添加到答案)我很感兴趣,它已经死了。
2021-05-05 20:04:01
此行是否调用服务器端事件?
2021-05-15 20:04:01
var clickButton = document.getElementById("<%= btnClearSession.ClientID %>");
clickButton.click();

该解决方案对我有用,但请记住,如果您的 asp 按钮具有

可见=“假”

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

风格=“显示:无;” 直接在按钮上也可以。
2021-04-24 20:04:01
真的很感激,上面提到的任何一个都不会在 Visible='False' 中工作。<div hidden></div> 对我很有用。干杯..:)
2021-04-28 20:04:01

我使用了下面的 JavaScript 代码,它可以工作......

var clickButton = document.getElementById("<%= btnClearSession.ClientID %>");
clickButton.click();
它对我不起作用。页面刷新但代码永远不会运行后面的代码
2021-04-18 20:04:01

此处发布的所有解决方案都不适用于我,这是我对问题的最终解决方案。

// 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"/>
回顾这一点 - 我们真正需要做的是使用对服务器端功能的 Ajax 调用,而不是依赖 WebForms。
2021-04-24 20:04:01
Visible="false" 这就是它不起作用的原因,只需用 <div hidden></div> 隐藏它
2021-04-30 20:04:01

我在两天内解决了这个问题,突然我意识到我在提交按钮(在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()" />

希望你有个美好的一天...