如何在用户开始在页面上键入时将“文本输入”字段设置为焦点

时间:2015-02-28 21:47:16

标签: html

当用户开始在网页上打字时,我正尝试自动对焦于文本输入。

我试过这个,但这仅适用于页面加载

<input type="text" name="text_input" autofocus>

我如何设置它以便在用户开始在页面上打字时聚焦

2 个答案:

答案 0 :(得分:1)

使用jQuery。

$('body').on('keydown', function() {
    var input = $('input[name="text_input"]');

    if(!input.is(':focus')) {
        input.focus();
    }

});

修改

如果您只希望这种情况发生一次,您可以设置某种标志,如下所示:

var flag = false;

$('body').on('keydown', function() {
    var input = $('input[name="text_input"]'),


    if(!input.is(':focus') && flag === false) {
        input.focus();
        flag = true;
    }

});

答案 1 :(得分:0)

在Josh Beam的答案基础上,如果你想同时按下用户按下的任何键到输入的末尾,你可以做类似下面的代码。它也只会在按下的键是数字或字母时触发,因此如果用户按下箭头键,向上翻页等,它就不会聚焦。

$('body').on('keydown', function(keyPress) {
    var input = $('input[name="text_input"]');

    if(!input.is(':focus') &&  keyPress.key.match(/^[0-9a-zA-Z]+$/)) {
        input.focus();
        input.val(input.val()+keyPress.key);
    }

});