1

私は 1 つの Web ページ (最初のウィンドウ) を持っています。そのページには、OnClientClick イベントを持つ画像ボタンが 1 つあります。その場合、javascript メソッドを次のように呼び出しますOpenHelpWindow()

OnClientClick ="OpenHelpWindow()"

その画像ボタンをクリックするたびに、javascript メソッドのイベント(OpenHelpWindow())がトリガーされ、新しいヘルプ Web ウィンドウが開きます。正常に動作していますが、問題は、Enter キーを押すとイベントが発生し、ヘルプ ウィンドウが表示されることです。

Enterキーが押されたときに2番目のウィンドウ(ヘルプウィンドウ)が開くのを止めたいと思います。

この問題を解決するにはどうすればよいですか?

最初の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 に答える