在按下其他键时触发键盘

时间:2013-03-01 16:17:08

标签: javascript jquery

我想检查输入值的长度,并在达到3时自动跳到下一个输入。我有跳过的代码,但是keyup事件排队的方式让我感到头痛......

输入字段的示例处理程序:

    $('input').on('keyup', function (e) {

    var $this = $(this);
    var code = e.keyCode || e.which;

    alert(String.fromCharCode(code)+' '+$this.val());

    // Handling of $this.val()==3

});

http://jsfiddle.net/tPyTq/1/

在释放按键之前键入三个字母。所有事件都已知道输入的最终值,因此我对长度的检查会过早地触发并且对于所有三个字母。

如何在按下其他键的同时触发keyup-event? 如果需要澄清,请询问。

1 个答案:

答案 0 :(得分:0)

我理解你的意思。这可能需要一些黑客攻击。

试试这个,虽然它可能不起作用:

  1. 将事件监听器更改为change

    $('input').on('change', function(e) {
       //use console rather than alert
       console.log(String.fromCharCode(code)+' '+$this.val());
    });
    
  2. 然后为keyup添加一个单独的侦听器,用于触发更改事件

    $('input').on('keyup', function (e) {
        $(this).trigger('change');
    });