如果我在textarea中按住键,如何只显示一个键

Csa*_*oli 0 javascript jquery

当按下一个键时,是否有任何可能的方法只显示一个字符DOWN一段时间我的意思是当我按下时让我们说' s'DOWN一段时间我只想's'显示我不希望这种情况发生'ssssssssssssssssssssssssssssssssssssssssssssss ....'.

并且使用这种方法出来,因为这会带来这样的问题:如果用户快速键入并同时按下两个键,则仅显示第二个键,例如,如果我按下"k"并按下白色,则按下'k '去'p'只显示'p'.

var textarea='';

document.getElementById('textareaID').onkeydown=keydown;
document.getElementById('textareaID').onkeyup=keyup;

function keydown () {

this.value=textarea;

}

function keyup () {
textarea=this.value;
this.value=textarea;

}
Run Code Online (Sandbox Code Playgroud)

并且请不要说使用计数器,因为它因某些原因不起作用相信我,我已经尝试了最近3天.

http://toki-woki.net/lab/long-press/这是我基本上要做的事情,但是我无法理解你按住键的部分是如何显示出来的,当然只有一个显示出去了,当然如果我按下一个键,当按键关闭时,我按下另一个,两个都显示休息很容易.

所以我会喜欢和解释它让我疯狂.

Mic*_*ael 5

好吧,我想我明白了.

1:在keydown上取消对textarea的输入.

2:在点击的字母中放入密钥.

document.getElementById('textareaID').onkeydown=keydown;
document.getElementById('textareaID').onkeyup=keyup;

// keydown is run more than once if held down hence "ssssssss"
function keydown (event) {
    // cancel input
}
// since the keyup event is only fired once we will do most of the work here
function keyup (event) {
    // insert input
}
Run Code Online (Sandbox Code Playgroud)

这是代码(有评论,所以你可以看到发生了什么):http: //jsfiddle.net/NerfAnarchist/gXVuC/