很抱歉,如果已经提出这个问题,我正在尝试创建一个用户扫描条形码的应用程序,然后数据显示在屏幕上。我不想使用文本框,因为我不希望数据可以编辑。
到目前为止,我已经设法获得了在条形码结束时自动发送的回车键,但似乎无法按下按键,任何帮助都会受到大力赞赏!
var item = "";
$(document).keypress(function(e) {
if(e.which == 13) {
alert(item);
}else{
item = item + e.which();
}
});
为了澄清我想要做的是在输入之前显示一个按下按键的警告框!例如:A B C D ENTER将显示警告(" ABCD")
谢谢!
更新
所以让我的代码工作,但我得到了" undefinedTHEKEYSPRESEDHERE"作为回报:
var counter = 0;
var item = [];
$(document).keypress(function(e) {
if(e.which == 13) {
alert(item[counter]);
counter++;
}else{
item[counter] = item[counter] + String.fromCharCode(e.which);
}
});
显然这还不够清楚,所以我在下面概述了我的问题:
我从警报中获得的内容(项目[计数器]);:
undefinedKEYS
我想要什么警报(项目[柜台]);:
KEYS
所以从undefinedKEYS到KEYS我需要删除文本" undefined"。
足够清楚?
答案 0 :(得分:3)
将e.which()
更改为String.fromCharCode(e.which)
。
var item = "";
$(document).keypress(function(e) {
if(e.which == 13) {
alert(item);
}else{
item = item + String.fromCharCode(e.which);
}
});
答案 1 :(得分:1)
不是我推荐这种检查以前结果的方法,但你基本上是在keypress事件中将项目重置为“”。在活动结束后设置一次。
which
是属性,不是方法:
使用string.fromCharCode
从ASCII转换为字符串字符(谷歌搜索会在两秒钟内为您提供)。
使用(e.which || e.keyCode)
确保您获得所有浏览器的密码。
e.g。
var item = "";
$(document).keypress(function(e) {
if((e.which || e.keyCode) == 13) {
alert(item);
}else{
item = item + String.fromCharCode(e.which || e.keyCode);
}
});
答案 2 :(得分:1)
将粘贴复制到控制台并运行:
var keys = [];
$(document).keypress(function(e) {
var keyChar;
if(e.which == 13) {
console.log( keys.join('') );
keys.length = 0;
}
else{
keyChar = String.fromCharCode(e.which);
if( keyChar )
keys.push( keyChar );
}
});
此技术不会显示没有分配文本字符的键(例如F1-F12键)