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

将焦点设置为文本框

  •  1
  • Geeth  · 技术社区  · 14 年前

    在我的网页中有一个宽度和高度等于0的文本框。此文本框用于获取用户不应看到的已扫描条码值。

    需要:

    1. 当我单击窗体中的任何位置时,我想将焦点设置为文本框。
    2. 我想使光标不可见。

    吉萨

    1 回复  |  直到 14 年前
        1
  •  3
  •   Dan Heberden    14 年前

    至于调焦,

    $('#idOfTextBox').focus();
    

    会成功的。您可以将其添加到任何单击处理程序中,例如

    $('#idOfFormOrParentDiv').click(function() {
        $('#idOfTextBox').focus();
        $(this).css('cursor', 'none');
    });
    

    至于隐藏光标,您可以将光标:none作为样式应用于窗体或父级div,或者在前面的示例中通过jquery更改它的css。

    光标:当光标在元素的边界内时,没有一个是这样的——尽管这个行为的整体看起来是模糊的和不必要的(更不用说让用户感到困惑了)。

    例子

    下面是一个使用绝对定位隐藏输入字段及其光标的示例。它将字段的焦点放在LOAD上,因此如果键入,则按 按钮,您将看到您键入的内容。

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-type" content="text/html;charset=UTF-8">
    <title>Test Page</title>
    <style type='text/css'>
    body {
        font-family: sans-serif;
    }
    #myTextBox {
        position: absolute;
        left: -10000px;
        top: 0px;
    }
    </style>
    <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'></script>
    <script type='text/javascript'>
    (function() {
        $(document).ready(pageInit);
    
        function pageInit() {
            $('#btnGo').click(go);
            $('#myTextBox').focus();
        }
    
        function go() {
            alert($('#myTextBox').val());
        }
    })();
    </script>
    </head>
    <body><div>
    <input id='myTextBox' type='text' size='1'>
    <input id='btnGo' type='button' value='Go'>
    </div></body>
    </html>