我希望拦截一个输入框中键入的字符并将其更改为其他字符。
例如,每次按键时我想模拟键入数字 1。
我想到了类似以下的代码:
//this example does not work, it will trigger an endless loop
Array.from(document.querySelectorAll('.onlyOne')).forEach(input =>
input.addEventListener('keydown', (event) => {
event.preventDefault();
event.srcElement.dispatchEvent(new KeyboardEvent('keydown', { 'key': 49 }));
});
}
);
我不能只使用event.target.value += 1;
来添加1,因为当输入框中已经有文本并且光标不在文本末尾或用户用鼠标选择了所有文本时,如果在输入框末尾添加文本,它会显得不自然。
请问我能否帮您做些什么呢?
this.value += "1"
- vsync