Jquery-如何在页面加载时聚焦表单中的输入框?

5

我正在尝试将焦点放在登录界面的用户名输入上,以便更轻松地登录。目前我的jQuery代码如下:

$(document).ready(function() {
    $('#Username').focus();
});

但是那样做不起作用...有什么想法吗?

请发布用于用户名表单项的<input>标签。 - John Sheehan
1
就像大多数人已经说过的那样,除非您的用户名标签命名不正确,否则应该可以正常工作。 - TStamper
这是在做asp.net MVC,检查页面元素验证我的ID是否正确,代码是<%= Html.TextBox("Username") %>。 - Jimmy
我在IE浏览器中遇到的错误是“对象未定义”。 - Jimmy
请确保已引用并加载了jQuery。"Object expected"可能意味着找不到$(它是jQuery的别名)。 - John Sheehan
jQuery已被引用并正在工作...我让它为表格进行斑马线条纹和执行其他一些功能..不确定为什么它没有聚焦在输入上。 - Jimmy
6个回答

5

标签是否具有id属性?

<input id="Username" name="Username" type="text" />

我猜它只有一个名字属性:
<input name="Username" type="text" />

如果您无法添加ID属性,可以像这样进行选择:
$("input[name='Username']").focus();

5

在以下简单示例中确实有效。因此,在您的页面上发生导致输入失去焦点的其他情况。建议使用setTimeout设置焦点。

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <title>test!</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js">
    </script>
    <script type="text/javascript">
      $(document).ready(function() {
    $('#Username').focus();
});
    </script>

  </head>

  <body>
  <input id="Username" />
  </body>
</html>

3

设置超时时间可能会解决问题:

   $(document).ready(function() {
        setTimeout(function(){
            $("input[name='inputname']").focus();
        }, 200);
    });

1

Internet Explorer在处理例如这段代码时会出现一些问题:

$(document).ready(function(){
        //focus on search field
        $("#userSearchField").focus();
});

看起来多么愚蠢,但这对我解决了问题:

$(document).ready(function(){
    //focus on search field
    $("#userSearchField").focus();
    $("#userSearchField").focus();
});

或者尝试使用setTimeout


1

好的,就是这样做。我想确保ID是正确的。


0

您的HTML看起来像是<input id="Username" ...>(区分大小写)?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接