我希望当用户与之交互时,输入字段会触发所有事件.这包括以下内容:
- 点击它.
- 点击它.
- 插入它.
- 从中脱颖而出.
- Ctrl键盘上的+ C和Ctrl+ V.
- 右键单击 - >粘贴.
- 右键单击 - >剪切.
- 右键单击 - >复制.
- 从另一个应用程序拖放文本.
- 用Javascript修改它.
- 使用调试工具(如Firebug)修改它.
我想用它来显示它console.log
.这可能在Javascript/jQuery中,如果是这样,我该怎么做?
如何以编程方式检测何时通过键盘输入填充文本输入以及何时通过条形码扫描器自动填充?
我经历了答案,并遇到了两种方法,可以帮助区分扫描仪和键盘输入。可以通过以下方式完成:
基于时间:扫描仪输入比手动键盘输入更快。
基于前缀:在条形码或扫描仪(扫描仪设备内置)中添加前缀,并使用它来识别扫描仪输入。
我遇到的问题是,在触发扫描事件时,只要用户手动键入一些键盘键,就会将其添加到扫描仪输入中,并导致结果不一致。
这是我正在使用的代码:
var BarcodeScannerEvents = function(){
this.initialize.apply(this, arguments);
};
BarcodeScannerEvents.prototype = {
initialize: function() {
$(document).on({
keypress: $.proxy(this._keypress, this)
});
},
_timeoutHandler: 0,
_inputString: '',
_keypress: function (e){
if(this._timeoutHandler){
clearTimeout(this._timeoutHandler);
}
this._inputString += String.fromCharCode(e.which);
//CHECKS FOR VALID CHARACTERS WHILE SCANNING
this._timeoutHandler = setTimeout($.proxy(function(){
if(this._inputString.length <= 10){
this._inputString = '';
return;
}
$(document).trigger('barcodescanned', this._inputString);
this._inputString = '';
}, this), 20);
}
};
new BarcodeScannerEvents();
Run Code Online (Sandbox Code Playgroud)
我的条形码格式为:〜xxx-xxx-xxxxxx,其中x可以是0-9之间的任何数字。如果将数字字符附加到条形码上,则会导致数据库中的错误插入。
我曾尝试比较键盘输入和扫描仪输入的事件,但无济于事。我考虑过在每个数字前添加额外的字符,然后如果出现连续数字,则使扫描的条形码无效。但是我认为这不是解决此问题的最佳方法。有人可以帮我吗?
我需要从网页中的条形码扫描仪读取数据.我同意usb扫描仪或配有键盘楔形驱动器的扫描仪可以将数据传送到网页中的文本字段.我很想知道我们如何从基于RS-232的扫描仪和蓝牙扫描仪读取数据.他们是否也会在没有任何额外努力的情况下将数据存入网页的文本字段?如果没有,我该如何实现?
上下文:
我正在开发一个使用条形码扫描仪设备的 Web 应用程序。用户扫描条形码,我将它们重定向到相应的页面。
问题:
我使用的扫描设备仅在用户位于输入框元素中时才会触发“按键”事件
window.addEventListener("keypress", function (event) {
// do something with the event
}
Run Code Online (Sandbox Code Playgroud)
我希望能够从我的应用程序中的任何地方扫描条形码(即使我不在输入框中)。(是的,我知道上面的代码会为每个字符触发,我有一个基于计时器的算法来知道它是条形码阅读器还是打字的人。)。
到目前为止:
我看了这个,所以我尝试用更通用的选择器(窗口或文档)替换接受的解决方案的选择器,但没有运气。是否有其他事件更适合此任务?我愿意接受以另一种方式做的建议。
--编辑--:
经过更多研究,我遇到了这个。问题是我的观点可能没有任何输入。只是纯文本
谢谢
使用usb条形码扫描仪扫描条形码后,如何模拟键盘按键?我对此一无所知,我只想获得一些关于如何做到这一点的建议/说明.如果我有这个表格,如何在该文本框中输入条形码编号?谢谢!
<form method="post" action="">
<input type="text" id="barcode-input" name="barcode-input" value=""/>
</form>
Run Code Online (Sandbox Code Playgroud) javascript ×5
jquery ×4
barcode ×2
dom-events ×2
bluetooth ×1
events ×1
html ×1
serial-port ×1