我有一个html页面,想要禁用键盘输入,只有条形码扫描器条目应该允许。 提前致谢
答案 0 :(得分:0)
你的代码错了,e.which / e.keyCode总是返回数字。
你需要检查这些数字的界限或检查输入的新值。
var tb=document.getElementById('textbox1');
tb.onkeypress = function(e) {
e = e || window.event;
var charCode = (typeof e.which == "number") ? e.which : e.keyCode;
if (charCode < 48 || charCode > 57) {
return false;
}
};
更简单的方法是使用:
<input type="number" id="textbox2">
这是一个适用于这两种方法的小提琴: http://jsfiddle.net/vgx4unc7/
查看这个jQuery函数:
$(document).ready(function() {
var pressed = false;
var chars = [];
$(window).keypress(function(e) {
if (e.which >= 48 && e.which <= 57) {
chars.push(String.fromCharCode(e.which));
}
console.log(e.which + ":" + chars.join("|"));
if (pressed == false) {
setTimeout(function(){
if (chars.length >= 10) {
var barcode = chars.join("");
console.log("Barcode Scanned: " + barcode);
// assign value to some input (or do whatever you want)
$("#barcode").val(barcode);
}
chars = [];
pressed = false;
},500);
}
pressed = true;
});
});
$("#barcode").keypress(function(e){
if ( e.which === 13 ) {
console.log("Prevent form submit.");
e.preventDefault();
}
});