javascript - 单击按钮将光标置于搜索表单中

标签 javascript html jquery css

我有一个不可见的搜索表单,仅在单击按钮时才会出现。

是否有可能当您单击按钮时,光标直接出现在搜索字段中? “自动对焦”属性在这里不起作用。是否有脚本解决方案?

搜索表单:

<div id="searchform">
    <form action="bla" method="post">
        ... <input type="text" name="item" id="search" placeholder="bla" autofocus /> ...
    </form>
</div>

按钮:

<a id="button"></a>

脚本:

<script>
    $(document).ready(function(){
        $('#searchform').hide();
        $("#button").click(function(){
            $("#searchform").slideToggle("fast");
        });
    });
</script>

最佳答案

要执行您需要的操作,请在使输入可见时调用focus():

$(document).ready(function() {
  $("#button").click(function() {
    $("#searchform").slideToggle("fast");
    $('#search').focus();
  });
});
#searchform { display: none; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="searchform">
  <form action="bla" method="post">
    <input type="text" name="item" id="search" placeholder="bla" autofocus /> ...
  </form>
</div>

<a id="button">Toggle form</a>

请注意,我使用 CSS 而不是 JS 来隐藏加载时的 #searchForm 元素,因为这样可以避免该元素在 DOM 准备就绪之前的几分之一秒内可见(也称为 FOUC ) .

关于javascript - 单击按钮将光标置于搜索表单中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67736796/

相关文章:

jquery - 使用 jQuery 将类添加到第三个之后的每个项目

javascript - Firefox 与 Safari 使用 JavaScript

javascript - 从 Angular 形式数据构建表格

javascript - Select2 JS 不显示来自 AJAX 的数据

javascript - 如何使用javascript一一删除附加元素

javascript - Thymeleaf:将输入文本作为 href 中的参数传递

javascript - 单击事件监听器仅在第二次工作

javascript - subSet Sum-power Sum IS。将数组连接成子集

javascript - 如何修复 "Uncaught Reference Error: autobahn is not defined at HelloworldProxy.connect "错误?

html - 无法从高度为 100% 的 Flexbox 列中删除意外的反向缩进