防止在textarea中按住键盘

时间:2016-10-29 16:05:14

标签: javascript jquery textarea keypress

我需要用户将文本插入textarea作为每个按键一个字母,所以如果按下一个键,它将只写一个字母('a')而不是多个字母('aaaaaaaaaaaaaaaaaa')。要输入最后一个字符串,用户必须多次按下键盘按钮。

这可能吗?

可以使用Javascript和JQuery。

谢谢!

1 个答案:

答案 0 :(得分:3)

警告:我强烈建议不要这样做,尤其是因为使用辅助技术的用户可能会产生意想不到的后果。

您可以观看keypresskeyup并禁止进一步的keypress个活动,直到您看到keyup。请注意,这不会阻止他们按住某个键并切换某些其他键(例如 Shift Ctrl ),但它会要求他们切换一些键:



var preventKeypress = false;
$("textarea")
  .on("keyup", function() {
    // Allow keypresses again
    preventKeypress = false;
  })
  .on("keypress", function(e) {
    if (preventKeypress) {
      // Disallow it
      e.preventDefault();
    } else {
      // Allow it, but then disallow until we next see keyup
      preventKeypress = true;
    }
  });

<textarea rows="5" cols="50"></textarea>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

我不是说它是万无一失的,或者是个好主意......: - )