当用户开始在网页上打字时,我正尝试自动对焦于文本输入。
我试过这个,但这仅适用于页面加载
<input type="text" name="text_input" autofocus>
我如何设置它以便在用户开始在页面上打字时聚焦
答案 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);
}
});