【发布时间】:2016-10-12 16:59:15
【问题描述】:
我们的商店有一个用于其 Web 应用程序的扫描仪设备,我们使用 jQuery keydown 事件处理设备的输入。除了现在所有较旧的 iPhone(4、5、6)似乎在升级时处理 keydown 事件时,这一直运行良好。我注意到的是 + 号,然后几乎同时触发了 enter 键,但大多数浏览器都正确处理了这个......
当用户按下 ENTER 键或 Scanner 按下 + 键时触发处理,即:
e.which = 13 || e.which = 187
当我单步执行 SAFARI 调试器时,jQuery 选择器的值为空。 When the val() of the selector has the actual scanned UPC barcode the iPhone passes the keydown events and the hotkey iOS keyboard is triggered.由于我们已经设置了 focusout 以触发处理,因此用户可以在他/她的 iPhone 上点击完成并将焦点放回选择器并扫描下一个项目。
这几乎不是一个可行的解决方案,因为我们的用户需要能够在他们的 iPhone 上连续扫描。有什么建议吗?
这是一个sn-p的代码:
$("input[name='SCAN']").on("keydown",function(e) {
var processRegex = /^([0-9]{7,14}\+?)$/;
//on SCAN (last character is a '+/=') field - reload detail section
if (e.which == 13 || e.which == 187){
scan_val = $.trim($("[name='SCAN']").val());
if(processRegex.test(scan_val)){
Handle_Scan(scan_val); //ajax processing function
}
else
$("[name='SCAN']").val('').focus();
return false;
}
return true;
});
【问题讨论】:
标签: jquery ios iphone bluetooth event-handling