条形码扫描器的回车问题。。。

why1980sy 2008-12-01 08:17:56
条形码扫描器的回车问题。。。

现在在做一个程序,
有个文本框,一个读入BUTTON
要求:在文本框中输入条形码按回车,处发读入BUTTON按下的事件,
或是条形码扫描器读入数据(自带回车)后处发读入BUTTON按下的事件.

可是
用条形码扫描器读入数据(自带回车)的时候,
没有处发读入BUTTON按下的事件,

但是,在文本框中输入条形码按回车,
就能处发读入BUTTON按下的事件,
我想问一下,有没有哪位高人知道,条形码扫描器的回车,
和我在键盘下按下回车有什么不同呀。


贴上我的JS代码:

document.onkeydown = function keyDown(e){
if (!e) var e = window.event
if (e.keyCode) keyCode = e.keyCode;
else if (e.which) keyCode = e.which;
var txtInput = document.getElementById("barcode");
if(keyCode==123 ){
txtInput.focus();
}else if(keyCode==13 ){
document.all('btnbcr').focus();
}
}

...全文
1245 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
不悲不喜 2008-12-03
  • 打赏
  • 举报
回复
楼主的问题解决了?
18楼的代码和我在13楼的代码完全一样呀!!!
zhuxianzhu 2008-12-03
  • 打赏
  • 举报
回复
<script language="javascript">
document.onkeydown = function keyDown(e){
if (!e) var e = window.event
if (e.keyCode) keyCode = e.keyCode;
else if (e.which) keyCode = e.which;
var txtInput = document.getElementById("barcode");
if(keyCode==123 ){
txtInput.focus();
}else if(keyCode==13 ){
document.all('form1').submit();
}
}
</script>
不悲不喜 2008-12-03
  • 打赏
  • 举报
回复
把你的代码帖出来吧。
why1980sy 2008-12-03
  • 打赏
  • 举报
回复
说的是keyCode吧。。。
if(keyCode==123 ){
txtInput.focus();
}else if(keyCode==13 ){
alert(keyCode);
document.all('btnbcr').focus();
}
加上alert(keyCode);的时候,
不管是条形码扫描器,还是键盘的回车
keyCode的值都是13..

不悲不喜 2008-12-02
  • 打赏
  • 举报
回复
有些奇怪呀,
那么你在onkeydown事件中是否检测到了charCode==13呢,
如果没有那个时候检查到的是多少?
不悲不喜 2008-12-02
  • 打赏
  • 举报
回复
应该是程序处理的问题。

}else if(keyCode==13 ){
document.all('btnbcr').focus();
}


这个地方中是让按钮聚焦,
并不会触发按钮按下。
其实你只要调用表单的 submit方法就可以了。
举例

<form name="form1" id="form1">
<input type="text" name="barcode" value="" onkeydown="keyDown(event);">
<input type="submit" name="submit">
</form>
<script language="javascript">
document.onkeydown = function keyDown(e){
if (!e) var e = window.event
if (e.keyCode) keyCode = e.keyCode;
else if (e.which) keyCode = e.which;
var txtInput = document.getElementById("barcode");
if(keyCode==123 ){
txtInput.focus();
}else if(keyCode==13 ){
document.all('form1').submit();
}
}
</script>
why1980sy 2008-12-02
  • 打赏
  • 举报
回复
onclick的方法我也试过了,能处发读入BUTTON按下的事件,但处发了二次:(
所以我郁闷啊。。。。
不悲不喜 2008-12-02
  • 打赏
  • 举报
回复
如果,btnbcr是一个submit控件的话,
直接调用 formObj.submit().
这里的formObj是指要提交的form对象。
不悲不喜 2008-12-02
  • 打赏
  • 举报
回复
看了一下你的代码,

document.all('btnbcr').focus();

把这一句改成调用 btnbcr的onclick事件处理函数调用就可以了。
不悲不喜 2008-12-02
  • 打赏
  • 举报
回复
你在textbox中也加入onkeydown处理试试。
why1980sy 2008-12-02
  • 打赏
  • 举报
回复
我试过了,能激发onkeydown。
alert(keycode) 的值是13

可就是不能处发读入BUTTON按下的事件
不悲不喜 2008-12-02
  • 打赏
  • 举报
回复
我也只是猜测,
请先确认一下在扫描完条码的时候会不会激发onkeydown,或者onkeyup,onkeypress事件,
在里面加入alert();就可以。
然后说明一下结果。
why1980sy 2008-12-02
  • 打赏
  • 举报
回复
TO:syukugai
请问怎么要JS中判断回车符(\n)呢。
RUN_ 2008-12-02
  • 打赏
  • 举报
回复
你这里用onkeyup更好。
why1980sy 2008-12-02
  • 打赏
  • 举报
回复
问题还是没有解决!!!
不过还是要谢谢syukugai。。
不悲不喜 2008-12-01
  • 打赏
  • 举报
回复
你试试在onpropertychange事件中跟踪一下value变化。
不悲不喜 2008-12-01
  • 打赏
  • 举报
回复
估计条形码扫描器只是向文本框中入力了一个回车符(\n)。
并没有向系统发送按键消息。
阿云ivan 2008-12-01
  • 打赏
  • 举报
回复
没用过
小逗狗 2008-12-01
  • 打赏
  • 举报
回复
不行你就调用onchange事件,然后再调用相关的程序

87,903

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧