在表单onload上的文本框上设置focus()

时间:2013-08-13 15:35:38

标签: javascript jquery html

我正在尝试将焦点设置在jQuery树的一部分表单中的文本框中。这是我的代码

$(document).ready(function() {

       $("#search").focus();

});

HTML:

 <div>
     <form action="search" method="post" name="frmSearch>
          <label for="search">Search:</label>
        <input type="text" name="search" id="search" />
        <input type="submit" name="button" value="Search" />
    </form>
</div>

当我单击树中的“搜索”选项卡时,它不会将焦点设置在文本框上。有人能让我知道代码中有什么问题吗?

3 个答案:

答案 0 :(得分:6)

您正在将文本框聚焦在页面加载上,但是只要您单击页面上的任何其他位置(例如选项卡),焦点就会从文本框中删除并提供给您刚刚单击的内容。

不是专注于页面加载,而是将一个点击监听器附加到选项卡,以便在单击时search文本框获得焦点。由于我没有看到您的所有标记,因此我使用#mySearchTab作为搜索标签ID的占位符:

$(document).ready(function() {
    $("#mySearchTab").on('click', function() {
       $('#search').focus();
    });
});

此外,请不要忘记使用)关闭您的功能。

我不确定你的树是什么样的,但这里是使用jQuery标签的working demo

答案 1 :(得分:1)

我在你的js代码中做了一些修改

<强> http://jsfiddle.net/8CTqN/5

$(document).ready(function(){
    $(function(){
        $("#search2").focus();      
    });
});    

答案 2 :(得分:1)

尝试以下:

$(function(){
    $("input:first:text").focus();       
});

在这里工作小提琴:http://jsfiddle.net/8CTqN/2/

在chrome上测试