gpt4 book ai didi

javascript - 使用 HTML 输入禁用键盘并允许扫描仪

转载 作者:太空狗 更新时间:2023-10-29 14:48:42 25 4
gpt4 key购买 nike

我有一个 HTML 输入

<input type="text" id="txtInput">

并且我需要禁用所有用于输入的键盘键,只允许条形码扫描仪获取条形码数据并用输入填充它。

我尝试了“只读”和“禁用”以及 javaScript keydown,但所有这些解决方案都禁用了所有内容,包括条形码扫描仪。

有没有办法做到这一点?

最佳答案

因此,首先您需要了解条码扫描仪会伪装成键盘。所以它们会像真正的键盘一样触发 JS 击键事件。我能想到的将 2 分开的唯一方法是一些基于时间的启发式方法(这个想法是没有人可以在不到 0.1 秒的时间内键入完整的 10 位条码)。

所以基本上,您将拥有一些 javascript 来执行以下操作:

  • (onkeydown) 将按下的键附加到全局字符串并使用 setTimeout 启动计时器(延迟非常低,比如 10 毫秒)
  • (onkeydown) 像以前一样追加按下的键,但不再启动计时器
  • 在您的 setTimeout 函数中,检查按键字符串是否至少 3 个键(或更长,具体取决于您期望的条形码)。如果是这样,将字符串写入输入字段。否则,丢弃字符串
  • 冲洗并重复

它会很难看,但如果你真的绝望,它可能会奏效

var delay = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();

$("#txtInput").on("input", function() {
delay(function(){
if ($("#txtInput").val().length < 8) {
$("#txtInput").val("");
}
}, 20 );
});

关于javascript - 使用 HTML 输入禁用键盘并允许扫描仪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38958272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com