所以我遇到了这个问题,但无法用我最喜欢使用的普通js(无jQuery)提出解决方案。
我有一个文本区域,最初被禁用,可以通过按下按钮(假设按钮 i)来启用。因此,当我按下按钮“i”时,它会启用文本区域,但它也会将其打印出来,这是我不希望发生的情况。
document.addEventListener('keydown', (event) => {
if (event.keyCode == 73) {
document.getElementById('focus').disabled = false;
document.getElementById('focus').focus();
}
});
所以基本上我的问题是如何在一键按下时启用它并且不打印它,而是在启用它后打印它,(例如第二次按下)preventDefault() 很好,但不适用于此任务,因为它会阻止根本无法打印字符。
最佳答案
使用Event.preventDefault()
以防止该字母出现在文本区域中。但是,如果您希望用户能够键入字母 i,则必须随后中止事件监听器。
const focus = document.getElementById('focus');
document.addEventListener('keydown', function eventListener(event) {
if (event.keyCode !== 73) {
return;
}
focus.disabled = false;
focus.focus();
event.preventDefault(); // prevent the default behavior
document.removeEventListener('keydown', eventListener); // remove the event listener
});
<textarea id="focus" disabled></textarea>
关于javascript - 通过单击按钮启用文本区域但同时不打印它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46838108/