javascript - 将焦点从输入元素更改为动态内容占位符 div

标签 javascript jquery html ajax

在以下 html 中,焦点位于页面加载后的 sample_input 元素上。输入值并按下 Enter 按钮后,ajax 请求将发送到服务器,并且 ajax 请求的响应将附加到 my_dynamic_content div 中。此时如何将焦点转移到动态内容上。

<!DOCTYPE html>
<html>
  <head>
    <link rel='stylesheet' href='/stylesheets/style.css' />
    </head>
  <body>
    <script src="/javascripts/vendor/jquery-1.11.0.min.js"></script>
    <div>
      <input id="sample_input" type="text" placeholder="Type URL" autofocus="autofocus"/>
    </div>
    <div id="my_dynamic_content"></div>
  </body>
</html>

输入按下回调函数中尝试了以下操作,但不起作用

$('#my_dynamic_content').blur();
$("body").attr('tabindex', -1).focus();

最佳答案

您必须为 div 分配一个 tabindex 值,然后指定一种检查何时按下 Enter 键的方法。最简单的方法是将输入包装在带有 id 的表单中,然后捕获 onsubmit 事件并防止表单重定向页面,然后将焦点分配给 div

( Demo )

$("#myFancyForm").on('submit', function(e) {
  e.preventDefault();
  $("#my_dynamic_content").focus();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <form id="myFancyForm">
    <input id="sample_input" type="text" placeholder="Type URL" autofocus="autofocus" />
  </form>
</div>
<div id="my_dynamic_content" tabindex="1">Hello World</div>

关于javascript - 将焦点从输入元素更改为动态内容占位符 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30008841/

相关文章:

Javascript数据将元素属性绑定(bind)到URL中的 anchor href

javascript - 使用类属性时 jQuery 选择下一个子元素

html - 图像堆叠成列而不是行

javascript - 接受带逗号和点的小数 (html)

javascript - 声明 jQuery 变量的官方正确方法是什么?

javascript - C3.js - 嵌套的 JSON 对象,如何访问和加载数据?

javascript - 搜索和滚动条下拉子菜单 Bootstrap

javascript - JQuery 'Jcarousel' 插件错误,需要帮助

html - 如何将列表项定位到其父级无序列表/div 的右侧?

c# - 多行有多个提交按钮,我应该为每个按钮制作一个表单吗?