Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么focus()不选择我的容器div?_Javascript_Html_Forms - Fatal编程技术网

Javascript 为什么focus()不选择我的容器div?

Javascript 为什么focus()不选择我的容器div?,javascript,html,forms,Javascript,Html,Forms,我有一个index.html,其中包含JavaScript: byId("p").value = page; byId("nav_container").focus(); document.forms["nav_form_main"].submit(); 焦点部分在这里不起作用 我希望浏览器将焦点放在页面的某个特定部分,几乎放在顶部 我已经试着将焦点放在提交之后,同样的问题也出现了。确保要聚焦的元素具有属性tabindex=-1,否则该元素不可聚焦 比如说 <div id="myfocu

我有一个index.html,其中包含JavaScript:

byId("p").value = page;
byId("nav_container").focus();
document.forms["nav_form_main"].submit();
焦点部分在这里不起作用

我希望浏览器将焦点放在页面的某个特定部分,几乎放在顶部


我已经试着将焦点放在提交之后,同样的问题也出现了。

确保要聚焦的元素具有属性tabindex=-1,否则该元素不可聚焦

比如说

<div id="myfocusablediv" tabindex="-1"></div>

当为元素设置tabindex=-1时,它允许元素通过javascript获得焦点。相反,如果您希望它通过在元素之间进行tab来获得焦点,那么您可以将tabindex属性设置为0。

一旦提交表单,任何焦点都将变得无关紧要。文档会将位置更改为表单的操作,但焦点仍会丢失

看起来您希望在提交后设置焦点,在本例中,请在onload事件中执行此操作:

window.onload = function WindowLoad(evt) {
   byId("nav_container").focus();
}
正如其他人提到的,如果nav_容器不是输入框,它也不会工作,要滚动到该位置,请使用命名锚。。在元素之前添加此类锚点:

<a name="nav_container_anchor" />
当我想强制某个表单元素具有焦点时,我会这样做: 函数setFocusFixed elm{ 如果!输入返回; var savedTabIndex=elm.getAttribute'tabindex' elm.setAttribute'tabindex','-1' 埃尔姆·福克斯 elm.setAttribute'tabindex',savedTabIndex } //演示: var buttons=document.queryselectoral'button', 输入=文档。查询选择器“输入”; 按钮[0]。addEventListener'click',=>input.focus 按钮[1]。addEventListener'click',=>setFocusFixedinput 将焦点放在输入上 将焦点设置在输入上-固定您需要一个属性tabindex=0才能使焦点对我有效:tabindex=-1从页面选项卡序列中删除元素,例如,它不再可用于键盘

-1在某些情况下仍然可以聚焦,但不能通过键盘tab键聚焦, 0以自动顺序聚焦 任何其他正数定义聚焦元素的顺序
也许你已经打开了开发工具。我刚刚遇到这个问题,当我关闭devtools时,一切正常。

我假设byId是document.getElementById的快捷方式函数?tabindex部分很好,但它不必是-1,它可以是对特定页面有意义的任何值。对于我的情况,没有任何变化。我也无法从控制台命令中获得焦点,不知道为什么纯javascript和jquery都使用了。是的,我同意,我也提出了同样的问题。如果devoper工具处于打开状态,则domeElement.focu可能无法工作
document.location = "#nav_container_anchor";