通过javascript禁用文本框中的退格键

And*_*rew 11 javascript asp.net textbox backspace

我有一个由Ajax Control Toolkit日历扩展的文本框.

我想这样做,以便用户无法编辑文本框,而是必须使用日历扩展器进行输入.

我已设法阻止除退格之外的所有键!

这是我到目前为止:

<asp:TextBox ID="TextBox1" runat="server" onKeyPress="javascript: return false;" onKeyDown="javascript: return false;" onPaste="javascript: return false;" />
Run Code Online (Sandbox Code Playgroud)

我如何使用javascript禁用文本框中的退格?

编辑

由于我需要javascript中的解决方案,因此进行了编辑.

编辑

事实证明,onKeyDown ="javascript:return false;" 做的工作.我不知道为什么之前没有工作.我尝试使用新的文本框,它可以很好地阻止退格.很抱歉每个发布答案的人都希望得到一些代表.在我标记为赏金之后.

我的文本框现在(似乎)阻止所有击键,并且仍然可以使用日历扩展器.

Gab*_*ams 37

ZX12R很接近.这是正确的解决方案:

TextBox是这样的:

    <asp:TextBox ID="TextBox1" runat="server" onKeyDown="preventBackspace();"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)

并且脚本如下所示:

<script type="text/javascript">
    function preventBackspace(e) {
        var evt = e || window.event;
        if (evt) {
            var keyCode = evt.charCode || evt.keyCode;
            if (keyCode === 8) {
                if (evt.preventDefault) {
                    evt.preventDefault();
                } else {
                    evt.returnValue = false;
                }
            }
        }
    }
</script>
Run Code Online (Sandbox Code Playgroud)

首先,退格键不会通过按键,所以你必须使用Key Down.


Tho*_*ini 8

你不能只使用HTML readonly="readonly"属性吗?

<input type="text" name="country" value="Norway"   readonly="readonly" />

<textarea rows="3" cols="25" readonly="readonly">
It should work! :)
</textarea>
Run Code Online (Sandbox Code Playgroud)