如何使用JQuery设置焦点在输入字段上

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用JQuery设置焦点在输入字段上相关的知识,希望对你有一定的参考价值。

给定以下html结构:

<div class="wrapper">
    <div class="top">
        <a href="http://example.com" class="link">click here</a>
    </div>
    <div class="middle">
        some text
    </div>
    <div class="bottom">
        <form>
            <input type="text" class="post">
            <input type="submit">
        </form>
    </div>
<div>

这将在页面上重复多次,当用户点击.bottom div中的链接时,如何将焦点设置在.top div中的输入字段?

我目前正在使用下面的JQuery代码使.bottom div成功点击,但似乎无法弄清楚如何同时在输入字段上设置焦点。

$('.link').click(function() 
    $(this).parent().siblings('div.bottom').show();
);

谢谢!

答案

试试这个,将焦点设置为第一个输入字段:

$(this).parent().siblings('div.bottom').find("input.post").focus();
另一答案

贾斯汀的回答对我不起作用(Chromium 18,Firefox 43.0.1)。 jQuery的.focus()创建了视觉高亮,但文本光标没有出现在字段中(jquery 3.1.0)。

https://www.sitepoint.com/jqueryhtml5-input-focus-cursor-positions/的启发,我在输入字段中添加了自动聚焦属性,瞧!

function addfield() 
    n=$('table tr').length;
    $('table').append('<tr><td><input name=field'+n+' autofocus></td><td><input name=value'+n+'></td></tr>');
    $('input[name="aa"'+n+']').focus();

另一答案

如果输入恰好位于bootstrap模式对话框中,则答案是不同的。从How to Set focus to first text input in a bootstrap modal after shown复制这是必需的:

$('#myModal').on('shown.bs.modal', function () 
  $('#textareaID').focus();
)  

以上是关于如何使用JQuery设置焦点在输入字段上的主要内容,如果未能解决你的问题,请参考以下文章

渲染后如何在输入字段上设置焦点?

显示后焦点()未在输入字段上设置(使用参考)

如何使用 jQuery 将焦点移至下一个输入?

Vue:如何将焦点设置在输入字段上

如何使用 jQuery 在页面加载时关注表单输入文本字段?

使用jQuery将焦点设置到下一个输入字段