的JavaScript按钮的onclick不工作
我有一个网页(ASP.NET C#),有一个按钮:的JavaScript按钮的onclick不工作
<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
调用它,它工作正常,我得到警报。
正如上面所写,我希望看到警报,当我点击按钮,但它没有发生。我相信这是显而易见的,但我没有看到它。
您可以删除代码注册的JavaScript代码,而是这样做:
<asp:Button ID="btnHide" runat="server"
OnClick="HidePanel" Text="Hide" OnClientClick="alert('Hello');"
UseSubmitBehavior="false" />
此:
UseSubmitBehavior="false"
会导致按钮触发客户端脚本,它会运行服务器端代码(回发)。
太棒了,谢谢! – Deverill 2012-02-20 20:34:26
使用OnClientClick
而不是OnClick
。并添加一个return false
以避免在页面上回传。
<asp:Button ID="btnHide" runat="server" OnClientClick="alert('Hello'); return false;" Text="Hide"/>
在服务器端有很多步骤必须发生。如果我这样做,我可以让它在js处理单击事件后运行我的服务器脚本,如果我没有onclick? – Deverill 2012-02-20 20:25:53
只需将OnClick添加回来并在OnClick方法上添加您的服务器端代码即可。但在OnClientClick上留下警报,并删除返回false,以便页面回发并执行您的服务器端代码。这将弹出警报,当你点击确定后,页面将回发,你的服务器端将执行。 – 2012-02-20 20:37:08
你可以尝试使用, 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>");
为什么不使用OnClientClick? – 2012-02-20 20:16:33
你的代码工作正常。 – Asdfg 2012-02-20 20:20:30
我使用的是OnClick,因为还有很多事情要发生,比如使用我们使用的第三方预订系统检查连接性和当前会话。 – Deverill 2012-02-20 20:23:30