【问题标题】:how to capture backspace key code in android browser - javascript?如何在 android 浏览器中捕获退格键代码 - javascript?
【发布时间】:2013-09-06 22:06:51
【问题描述】:

我有一个用纯 HTML Javascript 制作的页面...我处理 keyup 代码,我需要获取密钥代码,当 key code == 8 (backspace) 必须运行特殊任务...但是如果我打开android 浏览器、chrome 或其他任何页面中的页面...退格键不返回任何键码...

我做了:

$( '.input-cell' ).bind( 'keyup', function( e ){

   var keycode =  e.keyCode ? e.keyCode : e.which;

   alert( keycode );

   if( keycode == 8 ) {
               .....
   }
});

警报返回我所有的键码,但退格键...有没有办法捕获退格键按下事件?

【问题讨论】:

  • 我以为输入是填充时键码是8...但是当输入为空时如何获得按键?
  • This works for me 在我的 Galaxy S3 上。我不确定您的代码有什么问题。附带说明一下,.bind() 方法在 jQuery 1.7+ 中已被弃用,取而代之的是 .on()。
  • 如果输入有“某些东西”要删除,也适用于我......但是当输入为空时不起作用......我使用绑定方法,因为这些字段是动态创建的。但是绑定方法这不是我确定的问题。
  • 同样的错误,仅当输入为空时。没有解决办法?

标签: javascript android jquery performance android-browser


【解决方案1】:

输入改变事件

$('#myinput').bind('input', function(){
    // code
});

退格

$('#myinput').on('keypress', function() {
    //code
    }).on('keydown', function(e) {
        if (e.keyCode==8) {
            //code
        }
    });

【讨论】:

    【解决方案2】:

    另一种解决方案可以检查之前和之后的字符长度,如果它比以前少一个字符,那么很明显它是一个退格键,在我的情况下,我只使用一个输入一个字符并且需要在按下退格键后返回上一个输入,就我而言,我在 android 键盘中也只有 0 和 229,所以我这样做了:

    $('input').on('keydown', function (e) {
        switch(e.keyCode){
            case 229:
            case 0:
                 if($(this).val() == '')
                     $(this).prev().focus();
                 break;
        }
    });
    

    同样可以通过检查字符来实现,当然这只是在android键盘设备中退格的情况下,只是一种解决方法,希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 2014-05-06
      • 1970-01-01
      • 2010-11-05
      • 2012-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多