【问题标题】:Set focus back to input after resetting form重置表单后将焦点设置回输入
【发布时间】:2018-09-19 13:08:53
【问题描述】:

我有一个表单,它的输入字段具有自动对焦和重置按钮。重置表单时,我希望输入集再次聚焦。有人有解决办法吗?

<form>
 <input type="text" name="focus" required class="search-box" autofocus="autofocus" 
placeholder="search items" />
 <a href="javascript:void(0)" class="close-icon" type="reset"></a>
 <button type="submit" class="btn btn-primary filtersearch" 
data-id="<?php echo $_POST['search']; ?>"><span class="glyphicon glyphicon-filter"></span> 
Filter items</button> 
 </form>

【问题讨论】:

  • 在哪里添加脚本?在表格之后或下方 ?

标签: javascript jquery html forms focus


【解决方案1】:

A) 使用重置 button 而不是锚元素来保留浏览器的表单重置行为。

B) 将reset 事件处理程序绑定到表单并聚焦具有autofocus 属性的字段。示例:(不带 jQuery)

var form = document.querySelector('form');
form.addEventListener('reset', function(event) {
    var autofocusField = form.querySelector('[autofocus]');
    if(autofocusField instanceof HTMLInputElement) {
        autofocusField.focus();
    }
});
<form>
    <input type="text" name="focus" required class="search-box" autofocus="autofocus"
           placeholder="search items" />
    <button class="close-icon" type="reset">Reset</button>
    <button type="submit" class="btn btn-primary filtersearch">Filter items</button>
</form>

【讨论】:

  • 脚本在哪里?低于表格或低于 ?
  • @user3258571 这取决于您如何处理 JavaScript。通常 JS 会进入一个单独的文件,该文件包含在结束 &lt;/body&gt; 标记之前。但这超出了这个答案的范围。请在继续之前阅读一些有关 Web 开发的基本教程,因为这是一个非常基本的问题。
猜你喜欢
  • 2017-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-18
  • 2018-12-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多