Javascript 在其他键仍被按下的情况下启动keyup

Javascript 在其他键仍被按下的情况下启动keyup,javascript,jquery,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

我想检查输入值的长度,并在达到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

});

在释放钥匙之前键入三个字母。所有事件都已经知道输入的最终值,因此我对长度的检查将提前触发,并检查所有三个字母

当其他键仍被按下时,如何使keyup事件激发?
如果需要澄清,请询问。

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

试试这个,尽管它可能不起作用:

  • 将事件侦听器更改为打开
    Change

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

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

  • 别忘了JS也很酷:
    $(this.val()
    =
    this.value
    如果其他行都是jquery,那么将一行替换为普通javascript有什么意义?