2014年1月10日金曜日

ASP.NET TextBoxでEnterキーやBackSpaceキーを入力できないようにする。

2014年初の投稿です。
昨年からASP.NETのお仕事が数件ほど続いています。

Webアプリを作っている人にとっては常識なのかもしれませんが、
TextBoxでEnterキーを押すとSubmitされてしまう場合があります。
またReadOnlyなTextBoxでBackSpaceキーを押すと「戻る」ボタンと同じ動きをしてしまいます。

JavaScriptでTextBoxにEnterキーや、ReadOnlyなTextBoxにBackSpaceキーを入力できないようにします。
EnterキーはKeyCode=13、BackSpaceキーはKeyCode=8です。
ReadOnlyな場合はEnterキー、BackSpaceキーを入力できないようにします。
ReadOnlyでない場合はEnterキーのみを入力できないようにします。

JavaScript
function cancelSubmit() {
    if (window.event.srcElement.readOnly == false) {
        if (window.event.keyCode == 13) {
            return false;
        }
    }
    else {
        if (window.event.keyCode == 13 || window.event.keyCode == 8) {
            return false;
        }
    }
}
ReadOnlyでないTextBoxの場合はonKeyPressで処理します。
<asp:TextBox ID="TextBox1" runat="server" onKeyPress="return cancelSubmit();" />
ReadOnlyなTextBoxの場合はonKeyDownで処理します。
<asp:TextBox ID="ReadOnlyTextBox1" runat="server" ReadOnly="True" onKeyDown="return cancelSubmit();" />


コチラの方法の方が楽です↓↓
ASP.NET EnterキーでSubmitさせないようにする。

0 件のコメント: