1

我有一个网页(第一个窗口)。在该页面中,我有一个图像按钮,该按钮具有 OnClientClick 事件。在那种情况下,我将 javascript 方法称为OpenHelpWindow()ie

OnClientClick ="OpenHelpWindow()"

现在,每当我单击该图像按钮时,javascript 方法中的事件(OpenHelpWindow())都会触发,它会打开新帮助 Web 窗口。它工作正常,但问题是,当我按 Enter 键时,事件也会触发并显示帮助窗口。

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

我该如何解决这个问题?

我的第一个 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;
 }
}
4

2 回答 2

4

YourImageButton是表单的默认按钮,这意味着当用户按下 Enter 时,该按钮会自动“按下”。这是标准的 ASP.NET 行为。

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

UseSubmitBehavior="False"

祝你好运!

编辑

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

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

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

于 2013-01-09T10:16:07.603 回答
0

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

于 2015-05-18T08:01:38.417 回答