Javascript focus()不';行不通

Javascript focus()不';行不通,javascript,jquery,html,internet-explorer,firefox,Javascript,Jquery,Html,Internet Explorer,Firefox,我的目标是在使用jQuery加载页面后聚焦输入字段。所以我试着在这个例子中: HTML: <form> <input type="text" tabindex="1"><br> <input type="text" tabindex="2"><br> <input type="text" tabindex="3"><br> <input type="text" tabindex="4

我的目标是在使用jQuery加载页面后聚焦输入字段。所以我试着在这个例子中:

HTML:

<form>
   <input type="text" tabindex="1"><br>
   <input type="text" tabindex="2"><br>
   <input type="text" tabindex="3"><br>
   <input type="text" tabindex="4"><br>
</form>
但是这不起作用(在Firefox24.0中进行了测试),尽管在StackOverflow的其他几个问题中建议使用这种方法

您可以随意尝试一下(有时您需要在第一次页面加载后单击run)

编辑:

<form>
   <input type="text" tabindex="1"><br>
   <input type="text" tabindex="2"><br>
   <input type="text" tabindex="3"><br>
   <input type="text" tabindex="4"><br>
</form>
将示例更改为聚焦于第三个元素,因为默认情况下第一个元素是聚焦的。因此,请尊重,如果您的解决方案与第一个元素一起工作,那么它可能与另一个元素不工作

示例不适用于FF 24.0/Win 7&IE 10/Win 7

编辑2:

<form>
   <input type="text" tabindex="1"><br>
   <input type="text" tabindex="2"><br>
   <input type="text" tabindex="3"><br>
   <input type="text" tabindex="4"><br>
</form>
正如ghusse所指出的,该示例在小提琴背景之外工作:
所以问题是,;什么会导致.focus()函数不起作用?

这应该对您起作用:

setTimeout(function(){
    $("*[tabindex='3']").focus();
},  1);

使用setTimeout时延迟最小

这应该适合你,然后:

setTimeout(function(){
    $("*[tabindex='3']").focus();
},  1);

使用setTimeout时延迟最小

您的代码似乎是正确的,也许fiddle有问题:

您的演示链接对我也不起作用,但“显示页面”很好:

此外,我更喜欢添加“input”而不是*以进行优化(这样只检查input元素而不是每个元素):


您的代码似乎是正确的,也许fiddle有问题:

您的演示链接对我也不起作用,但“显示页面”很好:

此外,我更喜欢添加“input”而不是*以进行优化(这样只检查input元素而不是每个元素):


我认为问题更多地来自JSFIDLE本身,而不是您的代码

在JSFIDLE中显示示例时,焦点设置为javascript代码窗口

如果在中显示代码结果,您将看到,实际上,它是有效的

$(function () {
  $("*[tabindex='3']").focus();
});

我认为问题更多地来自JSFIDLE本身,而不是您的代码

在JSFIDLE中显示示例时,焦点设置为javascript代码窗口

如果在中显示代码结果,您将看到,实际上,它是有效的

$(function () {
  $("*[tabindex='3']").focus();
});


它适合我:在Chrome和Firefox(最新版本)中都适用。@Johnツ 不适合我。。WIN7/FF24@ArunPJohny有趣的是,我在Ubuntu上…哇,我看到了一个
?旁注-为什么你有
输入的结束标记
?它对我有用:在Chrome和Firefox(最新版本)中都有。@Johnツ 不适合我。。WIN7/FF24@ArunPJohny有趣的是,我在Ubuntu上…哇,我看到了一个
?旁注-为什么你有
输入的结束标记?不,同样的问题存在:(你能做一个JS小提琴的例子吗?不,同样的问题存在:(你能举个JS fiddle的例子吗?谢谢你的建议谢谢你的建议。你是对的。现在的问题是。是什么导致了。focus()无法继续工作,因为此问题出现在我的项目的另一个上下文中。我们需要了解更多有关您的项目的信息。因为,很明显,它是开箱即用的。您的代码中可能有其他内容干扰了焦点。感谢您的建议谢谢您的建议。您是对的。问题是,现在是什么导致了焦点()由于此问题出现在我的项目的另一个上下文中,因此无法继续工作。我们需要了解更多有关您的项目的信息。因为,很明显,它是开箱即用的。您的代码中可能还有其他干扰焦点的内容。