防止输入文本框中的退格
Prevent backspace in input text box
我正在制作一个测试打字速度的 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>
我正在制作一个测试打字速度的 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>