JavaScript 实现扫码枪回车提交与焦点自动跳转
作者:流萤时间:2026-10-27 18:18:49浏览:276
本文介绍如何使用 JavaScript 监听键盘输入事件,通过判断回车键触发扫码枪数据提交。代码演示了动态创建隐藏字段、组装表单数据并自动提交至指定接口,同时实现了当输入框为空时自动将焦点跳转至指定元素的功能,适用于物流运单扫描场景。
JavaScript 扫码提交与焦点控制实现
具体实现逻辑如下所示:
在 body 标签上添加 onKeyPress 事件监听,调用 javascript:saomiao(event,555) 以监控键盘输入;
核心代码实现如下:
定义扫描处理函数 saomiao,接收事件对象 event 和参数 n:
{
初始化变量 code 为 0;
获取键盘输入事件的 keyCode 赋值给 code;
判断 code 是否等于 '13'(即回车键);
{
若参数 n 大于 0,则开始执行后续判断逻辑;
{
检查 ID 为 'logisticsno' 的元素值是否为空;
{
若为空,弹出提示框显示'请扫描输入运单号!';
获取 ID 为 'logisticsno' 的元素引用 r;
调用 r.focus() 将该元素设为焦点;
返回 false 阻止默认行为;
}
否则,判断当前获得焦点的元素名称 document.activeElement.name 是否不等于 'deliver_money';
{
获取 ID 为 'deliver_money' 的元素引用 r;
调用 r.focus() 将该元素设为焦点;
}
若上述条件均不满足,即所有校验通过;
{
获取 ID 为 'logisticsno' 的元素引用 r;
调用 r.focus() 保持焦点在该元素上;
使用 document.createElement('form') 创建一个新的表单元素 f;
设置表单 f 的 action 属性为 '/modules/logistics/start.php';
将表单 f 追加到 document.body 中;
使用 document.createElement('input') 创建一个新的输入元素 e;
设置 e.type 为 'hidden';
设置 e.name 为 'act';
设置 e.id 为 'act';
设置 e.value 为 'logisticsno';
将元素 e 追加到表单 f 中;
初始化变量 data_id 为 0;
获取所有 name 为 'orderdataid_no[]' 的元素集合 g;
初始化变量 h 为 0;
遍历 g 集合,索引从 h=0 到 g.length;
{
在循环中将 g[h].value 赋值给 data_id;
}
var order_no=0;
var gg=document.getElementsByName("order_no[]");
var hh=0;
for(var hh=0;hh<gg.length;hh++)
{
order_no=gg[hh].value;
}
var k=document.createElement('input');
k.type='hidden';
k.name='order_no';
k.id='order_no';
k.value=order_no;
f.appendChild(k);
f.submit();//表单提交
}
}
}
}
<body onKeyPress="javascript:saomiao(event,555);">//开始监控键盘输入 作者最新文章
JavaScript将图片转换为Base64编码的两种途径
2026-11-05 16:43:05
怎么在 Vue 或 React 项目中正确集成 animate.js
2026-11-05 10:23:38
JS注册事件:addEventListener基础语法与参数详解
2026-11-05 08:44:56
JSP和JS的区别:运行环境与服务端/客户端职责解析
2026-11-04 23:34:36
pdf.js 官方下载地址:GitHub Release 获取预编译包
2026-11-04 23:07:27
