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

时间:2013-01-09 10:08:19

标签: c# javascript asp.net

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

OnClientClick ="OpenHelpWindow()"

现在每当我点击该图片按钮时,javascript方法(OpenHelpWindow())中的事件都会触发,它将打开新的帮助网页窗口。它工作正常,但问题是,当我按下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;
 }
}

2 个答案:

答案 0 :(得分:4)

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

您可以通过在<ImageButton.../>标记中添加以下属性来更改此内容:

UseSubmitBehavior="False"
祝你好运!

修改

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

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

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

答案 1 :(得分:0)

无效的回发或回调参数。使用配置或&lt;%@ Page EnableEventValidation =“true”%&gt;启用事件验证在一个页面中。出于安全考虑,此功能可验证回发或回调事件的参数是否来自最初呈现它们的服务器控件。如果数据有效且符合预期,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证。