按钮onclick中的JavaScript不起作用
本文关键字:不起作用 JavaScript 中的 onclick 按钮 | 更新日期: 2023-09-27 18:25:10
我有一个网页(ASP.NET C#),它有一个按钮:
<asp:Button ID="btnHide" runat="server" OnClick="HidePanel" Text="Hide"/>
我正在做一个JavaScript警报,比如:
public void HidePanel(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(this.GetType(),"Hello","<script type=text/javascript> alert('Hello') </script>");
}
如果我将函数修改为没有object sender
和EventArgs e
,那么我可以从Page_Load
调用它,它工作正常,我会收到警报。
如上所述,当我点击按钮时,我希望看到警报,但它没有发生。我确信这是显而易见的,但我看不出来。
使用OnClientClick
而不是OnClick
。并添加return false
以避免在页面上回发。
<asp:Button ID="btnHide" runat="server" OnClientClick="alert('Hello'); return false;" Text="Hide"/>
您可以尝试使用,ClientScript.RegisterClientScriptBlock(GetType(),"nameOfScript",scriptString);
我以前在点击事件中使用过它。
编辑:我还不能编辑帖子,但你的代码对我来说也很好。
根据情况,他可能还想在点击事件上做一些服务器端的事情,或者动态构建脚本。
编辑:如果你已经注册了一个同名的脚本,它将不会运行,例如
Page.ClientScript.RegisterStartupScript(this.GetType(), "Hello", "<script type=text/javascript> var i = 0;</script>");
Page.ClientScript.RegisterStartupScript(this.GetType(), "Hello", "<script type=text/javascript> alert('other hello') </script>");
您可以删除代码来注册JavaScript代码,然后执行以下操作:
<asp:Button ID="btnHide" runat="server"
OnClick="HidePanel" Text="Hide" OnClientClick="alert('Hello');"
UseSubmitBehavior="false" />
此:
UseSubmitBehavior="false"
将导致按钮启动客户端脚本,并运行服务器端代码(post-back)。