【发布时间】:2021-07-10 22:58:51
【问题描述】:
这是我当前的设置: 我有一个键盘模式的条形码扫描仪。 我正在尝试扫描到隐藏的、失焦的输入。 我要读取的条形码如下:asterisk[barcode-info]asterisk 并粘贴为 |[barcode-info]。 (Stackoverflow 不允许我只放置星号,但这是 asterisk 所代表的。)
<form method="post">
<input type="hidden" name="action" value="barcode-scan"/>
<input type="hidden" name="barcode-input" value="" id="barcode-input" onchange="this.form.submit()" />
</form>
我无法弄清楚如何,但是当输入条形码时,我希望 Javascript 捕获它并更新“条形码输入”隐藏输入,然后将其自身提交给服务器。我已经弄清楚了服务器端,只是不确定如何从 JS(不是 Jquery)获取隐藏的输入。
有人建议尝试使用粘贴事件侦听器,但它似乎根本没有捕获输入。扫描仪确实可以工作,因为我可以在焦点对准时输入 type="text"。
更新:由于下面的精彩建议,我已经能够让输入正常工作!该表单将测试两个特定输入是否相互跟随,然后它将执行下一个函数。否则,它将清除日志常量中包含的任何信息。最终,是的,我让它正常工作!
document.addEventListener('keyup', function(e){
const log = document.getElementById('barcode-input');
log.textContent += ' ' + e.code;
document.getElementById('barcode-input').value = log.textContent;
if (log.textContent.startsWith(' ShiftLeft')) {
if (log.textContent.startsWith(' ShiftLeft Backslash')) {
document.getElementById('barcode-input').form.submit();
console.log('e.code, submit barcode info');
}
}
else {
log.textContent = '';
document.getElementById('barcode-input').value = '';
}
});
【问题讨论】:
标签: javascript input barcode barcode-scanner hidden-field