保留条形码扫描仪,但在HTML文本框中禁用键盘

时间:2015-09-12 05:22:18

标签: javascript jquery html5

我有一个html页面,想要禁用键盘输入,只有条形码扫描器条目应该允许。 提前致谢

1 个答案:

答案 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();
    }
});