jQuery keypress() - 获取所有字符,直到按下回车

jQuery keypress() - get all chars until enter is pressed

我正在尝试创建一个 keypress/keyup 从文档(而不是从输入字段)读取的函数 - 我打算将它用于条形码扫描设备。

函数

    $(document).keyup(function(e) {
      var barcode = e.which;
      // the barcode should be without the enter at the end

      if (e.keyCode == 13){
         // stop reading 
      }
    });

我对 javascript 和 jQuery 很陌生 - 你可能已经注意到了。

感谢您的帮助!

更新

这对我有用:

    $(function(){

            var barcode = '';

            var getCode = function (e) {
                if (e.which != 13) {
                    barcode += String.fromCharCode(e.which);
                } else {
                    $(document).unbind('keyup', getCode);
                    console.log(barcode);
                }
            };

            $(document).on('keypress', getCode);

            // Barcode ausgeben


            // Produktinfos ausgeben
            $('span#articleID').text('articleID');
            $('span#productName').text('productName');

        });

谢谢大家!!

你在找这个吗?

$(document).keyup(function (e) {
    
     if (e.keyCode == 13) {
         console.log("Stopped");
         e.preventDefault();
         return false;
     } else {
        var barcode = e.which;
     // the barcode should be without the enter at the end
         $("#dvStatus").append("</br> " + e.key + " Key should be logged");
     }
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="dvStatus">
  </div>

也许是这样的:

var BarCodeStr='';

document.onkeydown=function(e){

if (e.keyCode===13) {ProcessBarCodeStr(); BarCodeStr='';} else {BarCodeStr=BarCodeStr+e.keyCode;}

}

您可以考虑删除换行符 (\n)。在这种情况下,您会寻找:

$(document).keyup(function(e) {
  //check for different types of newlines
  var barcode = e.which.replace(/(\r\n|\n|\r)/gm,"");

  if (e.keyCode == 13){
     // stop reading 
  }
});

创建一个函数来绑定 keyup。按下回车后,解绑函数,保证代码不会再变了。

var barcode = '';

var getCode = function (e) {
    if (e.which != 13) {
        barcode += e.which;
    } else {
        $(document).unbind('keyup', getCode);
        console.log(barcode);
    }
};

$(document).on('keyup', getCode);