keyup、keydown 和 keypress 事件在移动设备上不起作用

Aar*_*rez 6 javascript jquery

我一直试图让它工作,但我不知道发生了什么,我的代码:

$('#buscar-producto').on('keydown', function(e){
    console.log('hello');
    console.log(e.keyCode);
});
Run Code Online (Sandbox Code Playgroud)

电脑上可以用,手机不行。。

编辑: 我需要在按下某个键时获取 keyCode ......

Rok*_*jan 8

keydown 应该可以工作,但是您可以使用input似乎对 Android 手机产生不良影响的事件...
要获取按下的键的代码,请使用 jQuery 的规范化Event.which

安卓 Chrome测试:

使用input事件(e.which总是给出,0所以它似乎是 android 设备上的一个错误)

jQuery(function($) { // DOM ready and $ alias secured

  $('#buscar-producto').on('input', function(e){
    var key = e.which || this.value.substr(-1).charCodeAt(0);
    alert( key )
  });

});
Run Code Online (Sandbox Code Playgroud)
<input type="text" id="buscar-producto" placeholder="Buscar...">

<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
Run Code Online (Sandbox Code Playgroud)

使用keydown(按预期工作)

jQuery(function($) { // DOM ready and $ alias secured

  $('#buscar-producto').on('keydown', function(e){
    alert( e.which );
  });

});
Run Code Online (Sandbox Code Playgroud)
<input type="text" id="buscar-producto" placeholder="Buscar...">

<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
Run Code Online (Sandbox Code Playgroud)

  • keydown 现在坏了。使用桌面模式在移动设备上运行此页面,以便无论按下什么,代码段总是可用的总是给出 229。在桌面上,会出现正确的字符代码。有谁知道是什么导致了这个或修复是什么? (2认同)