代码之家  ›  专栏  ›  技术社区  ›  Jimmy

jquery-在页面加载时关注表单中的输入字段?

  •  5
  • Jimmy  · 技术社区  · 15 年前

    我正在尝试将重点放在登录屏幕中的用户名输入上,以便更容易地访问登录,目前我的jquery看起来像这样

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

    但那不管用…有什么想法吗?

    6 回复  |  直到 9 年前
        1
  •  4
  •   Mike Blandford    15 年前

    在下面的简单示例中,它确实有效。因此,在您的页面上还有其他事情会导致输入失去焦点。我建议使用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>
    
        2
  •  5
  •   John Sheehan    15 年前

    标记是否具有ID属性?

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

    我猜它只有一个名称属性:

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

    如果不能添加id属性,可以这样选择:

    $("input[name='Username']").focus();
    
        3
  •  2
  •   Matheno    9 年前

    超时可能会起作用:

       $(document).ready(function() {
            setTimeout(function(){
                $("input[name='inputname']").focus();
            }, 200);
        });
    
        4
  •  1
  •   chaos    15 年前

    好吧,你就是这么做的。我想,请确认身份证是正确的。

        5
  •  0
  •   Dark Falcon    15 年前

    您的HTML看起来像<input id=“username”…>(区分大小写)?

        6
  •  0
  •   Michel    14 年前

    Internet Explorer遇到一些问题,例如此代码:

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

    看起来有多蠢,但这解决了我的问题:

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

    或尝试使用 setTimeout