javascript - 防止输入文本框中的退格

标签 javascript html dom-events input-field

我正在制作一个测试打字速度的 Web 应用程序。

它为用户提供了一些要输入的文本,以及一个要输入的输入框。如果用户键入错误的键,我将在生成的键事件上使用 preventDefault 来防止将错误的字符输入到输入框中(我会向用户显示一条错误消息)。

问题是,preventDefault 不会阻止输入退格键。理想情况下,由于永远不会将错误的按键输入到文本框中,因此允许退格是没有意义的。如果用户习惯性地在察觉到错误时按退格键,则会导致输入框中的文本变得不正确。这不会影响测试结果,只是不太理想。

如何防止“文本”类型的 HTML5 输入元素中的退格?

最佳答案

您需要检测 onkeydown 而不是 onkeypress,它应该可以工作(在 Firefox/Safari 上测试过)。在某些浏览器上,onkeypress 仅限于可打印字符,而 onkeydown 适用于所有按键按下事件。

<!doctype html>
<html lang="en">
    <head>
        <script type="text/javascript">
            function no_backspaces(event)
            {
                backspace = 8;
                if (event.keyCode == backspace) event.preventDefault();
            }
        </script>
    </head>
    <body>
        <input id="typeHere" onkeydown="no_backspaces(event);"/>
    </body>
</html>

关于javascript - 防止输入文本框中的退格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35869026/

相关文章:

javascript - 单击其他元素/主体失败时 react 切换并关闭

javascript - 从包含 Web 组件的插槽内容中捕获事件

javascript - 未捕获的类型错误 : Cannot set property 'innerHTML' of null

javascript - 在子悬停时更改父 css

javascript - 在 asp.net MVC 中更改文本框日期时的消防 Controller 代码

html - 在 CSS 文件中设置样式的内联 SVG 文本具有填充属性的奇怪行为

javascript - 如何同时替换 <br></br> 并删除 href 属性?

python - 查找包含给定文本的未知标签

javascript - 在我的案例中如何检测点击和操作元素

javascript - 为捕获阶段设置 ngClick 事件处理程序