1

asp:Panelデフォルトのボタンがフォームの保存ボタンに設定されています。Enterしかし、フォーカスがフォーム内の特定のアンカー要素にある場合、キーが PanelのDefaultButtonを起動しないようにしたいと考えています。むしろ、アンカーの 内に記述された Javascript 関数を起動する必要があります。これは、フォームから をhref削除するだけで完全に機能します。asp:Panel

多くの解決策を試しましたが、どれもうまくいかないようです。それらのいくつかは次のとおりです。

  1. キープレスイベントの別のハンドラーをフックし、イベントがそこでのみキャンセルされるように使用して、アンカー要素のそのイベントを削除するアンカーのフォーカスイベントをキャプチャします。ただし、これはPanelの実行を停止しません。event.preventDefault()keypressblurDefaultButton

  2. asp:Panel外側のPanel内で別のものを使用し、アンカー要素を置き換える に設定DefaultButtonします( anchorに設定できないため)。- しかし、これはまだ外側のPanelを起動します。ImageButtonDefaultButtonDefaultButton

私が必要としているのは、クライアント側でDefaultButtonアウターを無効にする方法です。asp:Panelこれは可能ですか?

4

2 に答える 2

1

何をしているのかよくわかりませんが、 DefaultButton 属性をに追加するasp:Panelと、レンダリングされた div に次のようなものが追加されます。

onkeypress="javascript:return WebForm_FireDefaultButton(event, 'Button1')"

次のようにして、jQuery を使用してその属性を削除できます。

$("#Panel1").removeAttr("onkeypress");

(パネルの ClientID が であると仮定しますPanel1)。それが助けになることを願っています!

于 2011-08-03T12:46:48.267 に答える
0

asp.net コントロールを使用して Javascript を生成するときに、典型的な制限に達しているようです。

このフォームの送信を処理する独自の関数を作成し、その中に必要なロジックを配置します。

于 2011-08-03T12:31:10.000 に答える