javascript - 选择选项后如何取消突出显示选择元素?
问题描述
假设select
我的 html 中有一个元素,而eventListener
javascript 中有一个元素,当我按下键时它console.log
是一些文本space
document.addEventListener("keyup", myFunc);
function myFunc(event){
if (event.code === 'Space') {
console.log("hi");
}
}
<select id="select">
<option value="">test</option>
<option value="">test</option>
<option value="">test</option>
</select>
当我单击其中一个选项时,该select
元素会自动关闭,但仍突出显示。所以如果我按空格键,它会打开select
元素而不是执行console.log
函数
select
选择一个选项后,我必须在元素外部单击,以便在按下键console.log
时可以输入一些文本space
select
有没有办法让我每次想按键时都不必在元素外部单击?
解决方案
在事件侦听blur()
器的选择元素上调用函数。change
document.addEventListener("keyup", myFunc);
const selectEle = document.getElementById("select");
function myFunc(event){
if (event.code === 'Space') {
console.log("hi");
}
}
selectEle.addEventListener("change", (e) => {
selectEle.blur();
});
<select id="select">
<option value="">test</option>
<option value="">test</option>
<option value="">test</option>
</select>
推荐阅读
- amazon-web-services - 编写 AWS 资源创建脚本的方法
- asp.net-core - 为 Web 和移动应用程序使用 .NET Core 社交身份验证 (AddAuthentication)
- python - python中使用`locals()`的列表理解错误
- java - 进行 JPA 一对一时引用的属性未知
- sql - SQL:遍历子查询
- docusignapi - 我的应用程序中的嵌入式签名者不需要登录
- dsl - 如何处理为在 URL 中传递值而驱动的数据
- visual-studio-code - 如何使用 vscode 集成终端在另一个终端中运行任务
- python - Python 3 dicts 显示与 dict.fromkeys 不同的行为
- reactjs - RN - Image Require 中的道具值语法