场景
ERP系统扫描输入货品编号到文本框后,触发写入记录到数据表格,并对数据进行渲染。
解决方案
通过发现回车或者换行符,则写入数据表格
代码
//监听文本框输入事件 $('#gidinput').bind('input propertychange', gidinputChangetemp); //根据输入写入数据 var value = $("#gidinput").val(); //获取输入框的值 var codenum = value.substr(value.length - 1).charCodeAt(); var inputrows = value.split(/[\r\n]+/); if(codenum == 10 || codenum == 13) { //如果发现回车或者换行符,则写入数据表格 $("#gidinput").val(""); if(inputrows[0] != "") { var data = $('#dg').datagrid('getData'); //获取数据 var x = $('#dg').datagrid('insertRow', { //写入数据 row: { value: inputrows[0], error: STYLE_ERROR } }); checkRow(data.total - 1, inputrows[0]); //判断数据表格内容进行相应样式渲染 } }
流程
1 监听文本框输入事件
2 获取输入框的值
3 发现回车或者换行符,则写入数据表格
4 判断数据表格内容进行相应样式渲染
常见问题
1 监听事件兼容问题
onpropertychange事件,顾名思义,就是property(属性)change(改变)的时候,触发事件。这是IE专有的!oninput是为了兼容其它浏览器!
2 回车换行的判断
根据最后一个字符判断回车换行
codenum=value.substr(value.length-1).charCodeAt();
如果codenum==10||codenum==13则触发写入数据