jquery 将光标移动到输入字段的开头?

pw136qt2  于 2023-11-17  发布在  jQuery
关注(0)|答案(5)|浏览(181)

当你在Stackoverflow中点击'Ask question'时,你会看到一个文本“What's your programming question?Be descriptive.”
我想要同样的事情,所有我需要的是移动我的光标到文本字段的开头。我如何用jquery做到这一点?

vmpqdwk3

vmpqdwk31#

也许这是一个矫枉过正,但这些功能是有帮助的,以选择一个输入字段的一部分。
下面的代码将光标放在第二个字段的第一个字符上。

<html>
<head>
    <title>so</title>
</head>
<body>
    <input value="stack" />
    <input value="overflow" />
    <script>
        var inp = document.getElementsByTagName('INPUT')[1];
        if (inp.createTextRange) {
            var part = inp.createTextRange();
            part.move("character", 0);
            part.select();
        } else if (inp.setSelectionRange) {
            inp.setSelectionRange(0, 0);
        }
        inp.focus();
    </script>
</body>
</html>

字符串

ecbunoof

ecbunoof2#

你可以使用focus()方法。如果我回忆一下jQuery,它是这样的:$(“#question_input_field_id”).focus();(如果我没记错的话)
更新:开始时设置光标:

$("#question_input_field_id").focus();
$("#question_input_field_id").get(0).setSelectionRange(0,0);

字符串

u0sqgete

u0sqgete3#

如果你查看stackoverflow > ask question的源代码,你会发现:

<table style="width:668px"> 
     <tr> 
         <td style="width:50px"><label for="title">Title</label></td> 
         <td style="padding-left:5px"><input id="title" name="title" type="text" maxlength="300" tabindex="100" style="width:610px" value=""> 
              <span class="edit-field-overlay">What's your programming question? Be descriptive.</span> 
         </td> 
     </tr> 
</table>

字符串
真正发生的事情是,CSS代码使<span class="edit-field-overlay">移动到输入框的顶部,并在需要时显示隐藏.

zvms9eto

zvms9eto4#

这将确保光标将在焦点上的值之后。它被所有浏览器广泛支持。

var inpu_val = $("#my_input").val();
$("#my_input").val('').val(inpu_val).focus();

字符串

siotufzp

siotufzp5#

$('#txtYourTextBox').blur(function () { 
    var val = $("#txtYourTextBox").val();
    $("#txtYourTextBox").val('');
    setTimeout(function () { $("#txtYourTextBox").val(val); }, 20);
});

字符串

相关问题