代码详解Vue中key的作用示例_WEB前端开发

key的特殊attribute主要用在Vue的虚拟DOM算法,在新旧Nodes对比时辨识VNodes,这篇文章主要给大家介绍Vue中key的作用,感兴趣的朋友跟随小编一起看看吧

1、扫码枪相当于键盘输入设备,输入一连串数字后加一个enter键。但在实际开发中需要区分是扫描枪输入还是键盘用户输入,区别在于扫码枪输入很快。

let code = '';

let lastTime, nextTime;

let lastCode, nextCode;

window.document.onkeypress = (e) => {

if (window.event) { // IE

nextCode = e.keyCode;

} else if (e.which) { // Netscape/Firefox/Opera

nextCode = e.which;

}

if (nextCode === 13) {

if (code.length < 3) return; // 手动输入的时间不会让code的长度大于2,所以这里只会对扫码枪有

console.log(code); // 获取到扫码枪输入的内容,做别的操作

code = '';

lastCode = '';

lastTime = '';

return;

}

nextTime = new Date().getTime();

if (!lastTime && !lastCode) {

code += e.key;

}

if (lastCode && lastTime && nextTime - lastTime > 30) { // 当扫码前有keypress事件时,防止首字缺失

code = e.key;

} else if (lastCode && lastTime) {

code += e.key;

}

lastCode = nextCode;

lastTime = nextTime;

}

PS:下面看下js获取USB扫码枪数据的代码

前言

vue实现员工信息录入功能的方法_WEB前端开发

这篇文章主要为大家详细介绍了vue实现员工信息录入功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

找了很多相关的教程不太好用,汲取各家之长总结精简了一下

原理

扫码枪扫描到的条形码每一位会触发一次onkeydown事件

比如扫描条码位‘1234567890’的条形码,会连续执行10次onkeydown事件

条码扫描到最后一位,会直接触发Enter

需要引入jQuery,我这里用的是vue

window.onload = (e)=> {

document.onkeydown = (e)=> {

let nextCode,nextTime = '';

let lastTime = this.lastTime;

let code = this.code;

if (window.event) {// IE

nextCode = e.keyCode

} else if (e.which) {// Netscape/Firefox/Opera

nextCode = e.which

}

nextTime = new Date().getTime();

//字母上方 数字键0-9 对应键码值 48-57; 数字键盘 数字键0-9 对应键码值 96-105

if((nextCode>=48&&nextCode<=57) || (nextCode>=96&&nextCode<=105)){

let codes = {'48':48,'49':49,'50':50,'51':51,'52':52,'53':53,'54':54,'55':55,'56':56,'57':57,

'96':48,'97':49,'98':50,'99':51,'100':52,'101':53,'102':54,'103':55,'104':56,'105':57

};

nextCode = codes[nextCode];

nextTime = new Date().getTime();

}

// 第二次输入延迟两秒,删除之前的数据重新计算

if(nextTime && lastTime && nextTime-lastTime>2000){

code = String.fromCharCode(nextCode);

}else{

code += String.fromCharCode(nextCode)

}

// 保存数据

this.nextCode = nextCode;

this.lastTime = nextTime;

this.code = code;

// 键入Enter

if(e.which == 13) {

// 判断 code 长度(这里就获取到条码值了,以下业务自由发挥)

code = $.trim(code)

if (code.length == 13) {

this.$message('A类条码:' + code);

} else if (code.length == 23) {

this.$message('B类条码:' + code);

} else if (code.length == 0) {

this.$message('请输入条码');

} else{

this.$message('条码不合法:' + code);

}

//键入回车务必清空code值

this.code = ''

return false;

}

}

}

相关学习推荐:javascript视频教程

php获取扫码枪的内容,一起看看js获取扫码枪输入数据的方法_WEB前端开发相关推荐

  1. php_js,举例说明JS调用PHP和PHP调用JS的方法_WEB前端开发

    HTML5 嵌入钉钉教程_WEB前端开发 这篇文章主要介绍了Html5嵌入钉钉的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习 ...

  2. js原生获取html的高度,如何通过js获取Html元素的实际宽度高度

    如何通过js获取Html元素的实际宽度高度 发布时间:2020-04-24 15:23:24 来源:亿速云 阅读:136 作者:小新 今天小编给大家分享的是如何通过js获取Html元素的实际宽度高度, ...

  3. js获取id后添加html代码,js获取Id的方法getElementById与$的由来和用Id判断元素是否存在及批量动态获取 Id...

    要用js操作一个html元素必须获取到这个元素,而获取元素要用 getElementById() 方法,这个方法是通过元素的Id获取到元素这个对象.getElementById 字符比较多,写得比较长 ...

  4. js基础总结——js 获取元素节点、js 绑定onclick事件、js 获取属性 修改属性值、js 获取子元素、js 改变css样式

    参考书籍:<JavaScript DOM编程艺术 第2版> 本博客代码的测试页面是:https://www.layui.com/ js dom操作 js 获取元素节点 一份document ...

  5. android获取网卡ip地址吗,Native.js获取android有线网络IP地址

    刚上手Native.js 请教问题如下: 想通过Native.js 获取Android有线网络IP地址,提示这一行console.log(en.hasMoreElements());报错: Uncau ...

  6. JS获取当月每天的日期,JS获取本周每天的日期

    获取当前月每天的日期,获取当前周每天的日期实现代码: 调用代码: console.log('-----------------', getNowM(), getWeekDay()) 结果:我今天是20 ...

  7. js向上向下取整_WEB前端之js只保留整数,向上取整,四舍五入,向下取整等函数...

    本文主要向大家介绍了WEB前端的js只保留整数,向上取整,四舍五入,向下取整等函数,通过具体的内容向大家展示,希望对大家学习WEB前端有所帮助. 1.丢弃小数部分,保留整数部分 parseInt(5/ ...

  8. cropper.js 图像旋转问题_快速提高前端开发效率:10个JavaScript图像处理库

    用JavaScript处理图像可能非常困难且繁琐.幸运的是,有许多库可以使事情变得简单得多.以下就是一些前端开发经常要使用到的图片处理库,和千锋广州前端小编一起来看看吧! 如果发现有用的东西,请尝试将 ...

  9. 如何用js语句给mysql添加内容_在js里写SQL的方法

    在日新月异的前端领域中,前端工程师能做的事情越来越多,自从nodejs出现后,前端越来越有革了传统后端命的趋势,本文就再补一刀,详细解读如何在js代码中执行标准的SQL语句 为什么要在js里写SQL? ...

最新文章

  1. [转]C++ 使用Makefile文件
  2. SQL Server中CROSS APPLY和OUTER APPLY的应用详解
  3. Oracle通过SSL方式连接AD服务器
  4. 活动 | 优步首席产品官Jeff Holden携手百度总裁张亚勤,告诉你Uber高速增长的秘密...
  5. HDU - 2732 Leapin' Lizards(最大流+思维建边)
  6. 关于构造函数和this调用的思考
  7. WKWebview加载本地图片时出现路径问题
  8. 第一批 90 后还有半个月就 30 岁了!那些 30 岁前就成博导的人都怎样了...
  9. 国外公司技术博客盘点
  10. python的解释器怎么打开_怎么启动python解释器
  11. 让你的模型acc更上一层楼:模型trick和数据方法总结
  12. 计算机控制lc72131,锁相环频率合成器—LC72131.PDF
  13. cocos2dx基础篇(10)——编辑框之一CCTextFieldTTF
  14. 在win7中chm打不开的方法
  15. 中软防水坝 怎么卸载_卸载中软防水墙软件
  16. signature=f81ed620b6d6e6cb4bbe5a4d79d445b8,Lubricating compositions
  17. 【新书推荐】Interpretable Machine Learning with Python
  18. Android 音视频配音之音频提取、截断、混音、合并、合成(一)——从视频中提取音频文件
  19. html5源码笔记【爱创课堂专业前端培训】
  20. IT项目管理小组分工情况

热门文章

  1. 微信支付软件架构重构之旅
  2. Oracle的Endgame,或被Amazon收购或自生自灭?
  3. jboss7.1.安装配置
  4. Qt 给控件QLineEdit添加clicked事件方法
  5. C++之运算符重载(前置++和后置++)
  6. twisted 网络通信的简单例子
  7. android中自定义RadioButton
  8. ionic路由(一)
  9. 人生中一定要坚守的格言
  10. 基于NPOI的报表引擎——ExcelReport