我有条形码扫描仪。
有时用户想通过条形码搜索物品。
但他够懒,根本不想用鼠标点击输入。
扫描仪通常输入 8 到 13 个符号的速度非常快,没有人类打字这么快。
这将是完美的解决方案:(1)检测极端输入,如果页面上没有输入元素具有焦点(2),则选择具有特定类别的输入,用扫描仪中的内容填充它并开始搜索。
第二阶段不是问题。我不知道如何从第一阶段开始。
有图书馆吗?
不完美的解决方案是对条形码阅读器进行编程,以某种组合键开始每次输入,并监听该键并将焦点集中在必要的输入上。但这需要其他人的额外工作。
是否可以得到完美的解决方案?
您可以回复keypress
on document
通过填写该键input
并给予它焦点,如果按键的目标不是input
:
document.addEventListener("keypress", function(e) {
if (e.target.tagName !== "INPUT") {
var input = document.querySelector(".my-input");
input.focus();
input.value = e.key;
e.preventDefault();
}
});
<input type="text" class="my-input">
我很好奇地发现,如果我不阻止默认设置,设置焦点会使 Chrome 在input
(但不是火狐)。因此preventDefault
阻止 Chrome 这样做。
如果您需要支持过时的浏览器,您可能需要尝试一下keyCode
and/or which
而不是使用key。 MDN 声明key
支持任何现代 Chrome 或 Firefox 和 IE9+(不包括 Edge)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)