如何使HTML输入字段在按下键时不接受连续相同的字符



我有一个HTML输入字段,但是如果用户一直按一个键,它会不停地添加相同的字母。我想抑制这种行为。

如何重写输入组件的输入事件监听器,以不允许在按下键时不添加连续字符?

<input type="text" oninput="this.value = this.value.replace(/(.)1+/g, '$1')" />

https://jsfiddle.net/sxwr2u3z/

又是一个答案。本例使用KeyboardEvent.repeat检测连续按压。

const input = document.querySelector('input');
input.addEventListener('input', function (event) {
this.value = this.value.replace(/.$/,'');
});
input.addEventListener('keyup', function (event) {
if (event.repeat) return;
this.value += event.key;
});

最新更新