使用c#的ASP.net中的图像按钮OnClientClick()事件问题

本文关键字:OnClientClick 事件 问题 按钮 图像 ASP net 使用 | 更新日期: 2023-09-27 17:51:02

我有一个网页(第一个窗口)。在那一页我有一个图像按钮,这是有OnClientClick事件。在这种情况下,我调用一个javascript方法OpenHelpWindow(),即

OnClientClick ="OpenHelpWindow()"

现在,每当我点击图像按钮的事件在javascript方法(OpenHelpWindow())将得到触发,它将打开新的帮助web窗口。它的工作正常,但问题是,当我按下回车键,然后事件也会得到火,并向我显示帮助窗口。

现在我想停止第二个窗口(帮助窗口)打开时,按下回车键。

如何解决这个问题?

我的第一个web窗口图像按钮的代码是,

。aspx代码

.
.
<asp:ImageButton ImageUrl="~/Images/help.png" runat="server" ID="ibtnHelp"
                                AlternateText="Help" ToolTip="Help"  OnClientClick="OpenHelpWindow()" />
.
.
OpenHelpWindow()的Javascript代码为
function OpenHelpWindow()
{
var newWin = null;
try
 {
    newWin = window.open("../Common/OpenHelpUrl.aspx");
    newWin.focus();
    return false;
 }
finally
 {
    newWin = null;
 }
}

使用c#的ASP.net中的图像按钮OnClientClick()事件问题

您的ImageButton是表单的默认按钮,这意味着当用户按下Enter时,该按钮自动被"按下"。这是标准的ASP。网行为。

您可以通过将以下属性添加到<ImageButton.../>标记来更改此属性:

UseSubmitBehavior="False"

祝你好运!

编辑

如果这不起作用(它应该起作用!),那么你可以通过在表单中添加一个不可见的虚拟按钮来欺骗浏览器:

<asp:Button ID="dummy" runat="server" Text="" OnClientClick="return false;" style="display:none;"/>

,然后添加defaultButton="dummy"到您的<form />

无效的回发或回调参数。事件验证在配置中启用或在页面中使用<%@ Page EnableEventValidation="true" %>。出于安全目的,此功能验证回发或回调事件的参数是否来自最初呈现它们的服务器控件。如果数据是有效且预期的,则使用ClientScriptManager。RegisterForEventValidation方法,以便注册回发或回调数据以进行验证。