【问题标题】:input text field focus on keydown输入文本字段焦点在 keydown
【发布时间】:2011-06-05 16:44:53
【问题描述】:

我有几个单独的输入文本字段,但我希望在您开始输入 1 时获得焦点。

我想我必须用 jquery .bind() 来做这件事,但我不确定:

$(document).bind('keydown',function(e){
    $('#defaultInput').focus();
    $(document).unbind('keydown');
});

而且你可以继续这样做。我现在拥有的代码只允许我执行一次此操作,并且不会检查我是否在另一个框中输入。

jquery 有没有办法做到这一点?

【问题讨论】:

    标签: jquery input focus field keydown


    【解决方案1】:

    例如,如果您的页面上有这 3 个输入字段:

    <input type="text" id="t1" />
    <input type="text" id="t2" />
    <input type="text" id="t3" />
    

    使用下面的 JS,如果焦点不在 t1 或 t3 或页面上的任何其他输入元素上,它只会关注第二个。

    $(document).bind('keydown',function(e){
        if ($(':focus:not("input")').length){
            $('#t2').focus();
        }
    });
    

    示例:http://jsfiddle.net/niklasvh/gPs45/

    【讨论】:

      【解决方案2】:
      $(document).one('onkeydown',function(e){
        $(':input:first').focus();
      });
      

      使用 jQuery .one() 在页面上只绑定一次(这比绑定/取消绑定更方便)。如果你想抓住keyChar 并把它推到现场,那么这取决于你,这样他们就不会“丢失”第一次击键。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-03-31
        • 1970-01-01
        • 1970-01-01
        • 2016-02-12
        • 2012-11-01
        • 2010-11-23
        • 2015-09-21
        相关资源
        最近更新 更多