gpt4 book ai didi

javascript - 如何通过 JQuery 或 Javascript 以编程方式调用服务器单击

转载 作者:行者123 更新时间:2023-12-03 11:46:35 25 4
gpt4 key购买 nike

我在用户控件上有一个 ASP 服务器按钮,可以触发服务器端 OnClick 事件,该事件工作正常。但我需要使用 JavaScript 或 JQuery 触发 OnClick 事件。

我尝试了以下方法,但都没有像用户实际单击按钮一样实际模拟结果:

document.getElementById('<%=btnRefresh.ClientID%>').click();
$('#<%=btnRefresh.ClientID %>').click();

我怀疑这可能是因为它模拟了 OnClientClick 事件而不是服务器;但我发现声称这对其他人成功触发服务器端 OnClick 事件有效,但这对我不起作用。

还有其他方法可以完成任务吗?

<小时/>

响应AJAX的建议。我已经尝试过这种方法,但是需要回发才能成功完成此任务。按钮的实际单击会产生所需的结果,我可以使用 AJAX 触发事件,但如果没有 PostBack 元素,它就会失败。

最佳答案

I have an ASP Server Button

所以你有类似的东西

<asp:Button ID="btnRefresh" Text="I'm a button" OnClick="btnRefresh_Click" />

为了在服务器调用之前也执行客户端调用,您所需要做的就是将函数或内联代码附加到 OnClientClick属性:

<asp:Button ID="btnRefresh" 
Text="I'm a button"
OnClick="btnRefresh_Click"
OnClientClick="btnRefreshClick" />

并在您的 JavaScript 中简单添加该方法

function btnRefreshClick() {

// your stuff goes here...

return true; // returning true (or nothing) will fire the server side click
// returning false will not fire it
}
<小时/>

添加:误解了问题,因此您想要触发一个 javascript 事件,该事件将自动单击按钮...

我刚刚测试了这段代码:

<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /><br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<br/>
<a href="#" class="a">fire button click event</a>
</div>
</form>

<script>
$(".a").click(function() {
//var elm = $("#" + "<%= Button1.ClientID %>"); elm.click(); // with jQuery

var elm = document.getElementById('<%=Button1.ClientID%>');
elm.click();
});
</script>
</body>

无论有没有 jQuery,我都能正确触发按钮:

正在执行的截屏:http://screencast.com/t/m4ohA9uW

关于javascript - 如何通过 JQuery 或 Javascript 以编程方式调用服务器单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26024023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com