防止输入文本框中的退格

时间:2016-03-08 13:42:06

标签: html5 javascript-events input-field

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

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

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

如何防止类型" text"的HTML5输入元素中的退格?

1 个答案:

答案 0 :(得分:1)

你需要检测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>