【问题标题】:Keeping an input focused when another select option is focused?当另一个选择选项聚焦时保持输入聚焦?
【发布时间】:2016-05-16 23:07:42
【问题描述】:

我有一个包含两个输入的简单搜索表单。一个文本输入和一个选择输入。

文本输入是全宽的,并且选择输入是绝对定位的,因此它位于文本输入的右侧并充当部分过滤器。

这里有例子

我要做的是在选择选择元素时保持文本输入的焦点。目前,您可以专注于文本输入,但是当您选择您的选择选项时,搜索/文本输入会失去焦点,这意味着您不能只点击返回搜索。

我假设这可以用一点 jQuery 来解决。我找到了一些示例,当您单击输入时,它们将保持输入焦点(或重新聚焦),但我只希望在选择选择时保持焦点。希望这有意义吗?

标记就是这样...

<div id="search" class="global-search">

    <form class="global-search-form" method="post">

        <input type="search" placeholder="Search...">

        <div class="search-select">
            <span>in</span>
            <select name="select-category">
                <option value="all-categories">Everything</option>
                <option value="category1">Category 1</option>
                <option value="category2">Category 2</option>
            </select>
        </div>

    </form>

</div>

【问题讨论】:

  • 这是你能做的最简单的黑客攻击:jsfiddle.net/DinoMyte/cuza0ugo
  • 谢谢。但是 Chrome 有这个问题吗?我发现$('select').focus(function() { $('input').focus(); }); 也能正常工作。
  • 您将无法专注于选择,因为它会避免从该选择中选择一个选项。尝试使用点击或更改。

标签: jquery input focus


【解决方案1】:

在聚焦选择时,您不能真正保持文本输入聚焦,但您可以重新聚焦于变化:

$('[name=select-category]').on('change', function(){
    $("[type=search]").focus();
});

https://jsfiddle.net/obbthcfp/

【讨论】:

  • 谢谢。根据我上面的评论,我发现 select 元素上的焦点事件也起到了作用。
  • 啊,我写答案时没有刷新看到 cmets。哎呀...好球!好球!好球! (抱歉,出于某种原因闪到火箭联盟)。
猜你喜欢
  • 2012-09-28
  • 1970-01-01
  • 1970-01-01
  • 2011-10-23
  • 2020-12-25
  • 2018-01-21
  • 1970-01-01
  • 2018-07-16
  • 2015-08-16
相关资源
最近更新 更多