2

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

4

1 回答 1

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');
    });
    
于 2013-03-01T16:21:48.610 回答