ASP.NET EnterキーでSubmitさせないようにする。

前回ASP.NET TextBoxでEnterキーやBackSpaceキーを入力できないようにする。 を書きましたが…
submitを発生させるコントロールってtextboxだけじゃないんですね~
checkboxやらradioでもsubmitが発生して、form内の一番最初に配置しているbuttonのclick処理が走ってしまいます。
全部のコントロールにonKeyPressなんて書いてられないので、ほかの方法で実装します。

以下その方法です。

formにダミーボタンを配置しOnClientClickでsubmitさせないようにし、style="display:none"で非表示にします。
つぎにformタグのdefaultbuttonに作成したダミーボタンを指定します。
これですべてのコントロールでenterキーを押されてもsubmitを無効にすることができます。

マスターページを使用していれば、マスターページに実装するだけで済みます。
<form id="form1" runat="server" defaultbutton="DummySubmitButton">
    <asp:Button ID="DummySubmitButton" runat="server" Text="Button" OnClientClick="return false;" style="display:none"  />
    ・・・以下略
</form>

0 件のコメント: