其他键仍然按下时弹起键盘弹出

问题描述:

我想检查输入值的长度,并在达到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事件触发,而其他键仍然按下? 如果需要澄清,请询问。

+0

不要忘记,JS也是'酷':'$(this).val()'=='this.value' – 2013-03-01 16:20:05

+0

交换一行为香草javascript的点是什么,如果字面上的其他行是jQuery ? – Kristian 2013-03-01 16:24:10

我明白你的意思了。这可能需要一些黑客攻击。

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

  1. 变化事件监听器是在change

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

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