如何使用 JavaScript 调用 asp:Button OnClick 事件? [复制]
Posted
技术标签:
【中文标题】如何使用 JavaScript 调用 asp:Button OnClick 事件? [复制]【英文标题】:How to call a asp:Button OnClick event using JavaScript? [duplicate] 【发布时间】:2013-02-19 08:52:58 【问题描述】:我有一个问题,我有一个如下按钮:
<asp:Button ID="savebtn" runat="server" OnClick="savebtn_Click" Visible="false" />
然后我有如下 html 按钮:
<button id="btnsave" onclick="fncsave">Save</button>
我有下面的javascript:
<script type="text/javascript">
function fncsave()
document.getElementById('<%= savebtn.OnClick %>').click()
</script>
我现在的问题是,如何从 HTML 按钮调用 asp:Button OnClick?我已经读过你可以通过 Id 从 JavaScript 调用来做到这一点,但它不起作用。
任何帮助将不胜感激。
谢谢
【问题讨论】:
可能是骗子... @Mortalus 调用 __doPostBack 方法很酷吗?我在实践中从未这样做过。 当提到 JavaScript 方法时,我不确定您所说的“酷”是什么意思 :) 但是是的,您可以使用它。如果您可以模拟实际的客户端按钮单击,则可以像其中一个更简单的答案一样单击,因为有时您可能想做部分回帖,然后我发布的问题中的答案将不起作用。 【参考方案1】:设置style= "display:none;"
。通过设置visible=false
,它不会在浏览器中呈现按钮。因此,客户端脚本不会执行。
<asp:Button ID="savebtn" runat="server" OnClick="savebtn_Click" style="display:none" />
html 标记应该是
<button id="btnsave" onclick="fncsave()">Save</button>
将javascript更改为
<script type="text/javascript">
function fncsave()
document.getElementById('<%= savebtn.ClientID %>').click();
</script>
【讨论】:
正确的点击应该是onclick="fncsave(); return false;"
救命稻草。如果我使用return false;
,它会阻止回发吗?【参考方案2】:
如果你愿意使用 jQuery:
<script type="text/javascript">
function fncsave()
$('#<%= savebtn.ClientID %>').click();
</script>
此外,如果您使用 .NET 4 或更高版本,您可以创建 ClientIDMode == static
并简化代码:
<script type="text/javascript">
function fncsave()
$("#savebtn").click();
</script>
参考:MSDN Article for Control.ClientIDMode
【讨论】:
我的荣幸。题。为什么不直接使用 ASP.NET 按钮? 我在 jQuery 中使用了一些 CSS,而 ASP.NET 让我很难对其进行样式设置或使我的设计工作。 这可能是另一篇文章的主题。 .NET 生成的 HTML 在 CSS 方面应该与“普通旧 html”控件的操作没有什么不同 还有一件事,使用“静态”clientIDMode 可能会“降低”这个 CSS 难度。 关于我的问题的网络问题,我已经回答了几乎所有的问题,但是您的行“此外,如果您使用的是 .NET 4 或更好的版本,您可以将 ClientIDMode == 设为静态并简化代码:“终于改变了一切!!!!以上是关于如何使用 JavaScript 调用 asp:Button OnClick 事件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JavaScriptCore 从 Swift 中的 javascript SDK 调用异步 javascript 函数
如何在 JavaScript 中使用 JSONP 请求执行 Ajax 调用? [复制]
如何从 javascript 调用 IBM Watson 服务