2008年8月27日水曜日

テキストボックス内でEnterキーを押した際に発生するポストバックを無効にするには

1.ページ内にTextBoxコントロールとButtonコントロールを配置した場合

ButtonコントロールのUseSubmitBehaviorのプロパティがデフォルトで"True"になっているため、フォーム内での[送信]ボタンと同様の動作をしてしまう。
UseSubmitBehaviorのプロパティを"False"にするとポストバックを発生させないようにできる。

<asp:button id="Button1" runat="server" text="ボタン" usesubmitbehavior="False">


2.ページ内にTextBoxコントロールとImageButtonコントロールを配置した場合

ImageButtonコントロールには、UseSubmitBehaviorプロパティが存在しないため、JavaScriptを使用し、ImageButtonを押下したのがEnterキーによるものかどうかを判断させて明示的にボタンを無効化させる必要がある。

<asp:imagebutton id="ImageButton1" runat="server" alternatetext="ボタン" imageurl="~/Image/ButtonImage.gif"
onkeydown="if (window.event.keyCode==13){ return false}" />


ちなみに、Enterキーの keyCode は13だが、Enterキー以外のkeyCodeを取得したい場合は、

onkeydown="alert(window.event.keyCode);return false;"

で確認できる。

0 件のコメント: