当用户按下回车键时,我在input
元素的onkeyup
事件中显示alert()
消息。如果用户按下Ok按钮或按下Enter键关闭警报框,则一切正常。但当用户按下Escape按钮关闭警报时,文本框会冻结。它不会被聚焦,不会被键入,就好像它被禁用了一样。
我该怎么解决?
注意:这个问题不会出现在jsfiddle 中
编辑:
我相信,如果代码托管在像jsfiddle这样的网站上,即使是SO中的Run code Snippet中,行为也会有所不同。请尝试通过将代码实际保存在html文件中来复制问题。然后在本地运行
更新:
我正在使用Windows 10。我发现这个问题只发生在谷歌浏览器/Microsoft Edge上。在Firefox上不会发生这种情况。
我能够在云中的虚拟机中复制这个问题。Windows Server 2022上的谷歌Chrome。我甚至使用了它的屏幕键盘来确保它不是硬件问题。
window.addEventListener('DOMContentLoaded', () => {
document.getElementsByTagName("input")[0].onkeyup = function(event) {
if (event.keyCode === 13) {
alert('Press Escape Key. The textbox will freeze.');
};
}
});
<input placeholder="Press Enter Here" />
我尝试将代码保存在html文件中并在本地运行。但代码运行良好。输入框对我来说很好,按下Escape按钮时没有冻结。即使当我尝试在这个stackoverflow网站上运行脚本时,它在这里也起到了作用。
window.addEventListener('DOMContentLoaded', () => {
document.getElementsByTagName("input")[0].onkeyup = function(event) {
if (event.keyCode === 13) {
alert('Press Escape Key. The textbox will freeze.');
};
}
});
<input placeholder="Press Enter Here" />