代码之家  ›  专栏  ›  技术社区  ›  SpaceDogCS

无法强制关注输入

  •  0
  • SpaceDogCS  · 技术社区  · 7 年前

    我在努力集中注意力 input 在a中单击后 span 这个 输入 不可见,但当我单击 跨度 它变得可见

    <form action="{{ route('busca') }}" method="get">
        <span class="pesquisa-icon"></span>
        <input id="q" type="text" name="q" placeholder="Digite o que precisa e pressione ENTER..."/>
    </form>
    

    使用jQuery,我将成为可见的输入

    $(this).closest('.menu').addClass('pesquisa-open');
    $(this).siblings('input').focus();
    

    但它没有成为焦点,即使在浏览器中,我也尝试过 $('#q').focus() 在浏览器控制台中(输入可见),它不会聚焦。

    我正在使用Opera浏览器

    解决方案

    我检查了塞巴斯蒂安·斯佩特尔(SebastianSpeitel)的答案作为正确答案,因为它很有用,但我的问题实际上是在css中,我的输入是关于属性的 visibility: hidden 甚至我也改变了 visibility: visible 点击后 跨度 它没有聚焦,移除此属性解决了我的问题

    2 回复  |  直到 6 年前
        1
  •  1
  •   Sebastian Speitel    7 年前

    我认为您想要实现的是相同的功能, <label> s代表。您可以通过将 <span> <input> 在一个。

    请在此处阅读有关他们的更多信息: https://www.w3schools.com/tags/tag_label.asp

        2
  •  1
  •   Zenoo    7 年前

    它只使用 .focus()

    查看此演示:

    $('.pesquisa-icon').on('click', function(){
      $(this).next().addClass('shown').focus();
    });
    #q{
      display: none;
    }
    
    #q.shown{
      display: inline-block;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <form method="get">
        <span class="pesquisa-icon">TEST</span>
        <input id="q" type="text" name="q" placeholder="Digite o que precisa e pressione ENTER..."/>
    </form>