文本输入字段中的光标位置

时间:2009-11-25 20:05:01

标签: javascript jquery text input

有很多关于如何将光标准确放置在textarea中的位置的信息。它似乎都不适用于<input type="text">字段。

基本上,当页面加载时,我有一个带有文本的输入字段,并且它是聚焦的。问题是光标位于预写文本的末尾。我需要它在一开始。或者,隐藏光标也没问题。实际上更好,但我不知道这是否可能。

理想情况下,这将在jQuery中完成,但常规JS也可以。

谢谢!
马拉

2 个答案:

答案 0 :(得分:3)

这可以使用选择属性来完成:

$('#my-element-id').attr({
    selectionStart : 0,
    selectionEnd   : 0
});

答案 1 :(得分:2)

不确定jQuery为乔丹的回答做了什么,但这个可能会更加跨浏览器:

function setSelectionRange(inputEl, selStart, selEnd) { 
    if (inputEl.setSelectionRange) { 
        inputEl.focus(); 
        inputEl.setSelectionRange(selStart, selEnd); 
    } else if (inputEl.createTextRange) { 
        var range = inputEl.createTextRange(); 
        range.collapse(true); 
        range.moveEnd('character', selEnd); 
        range.moveStart('character', selStart); 
        range.select(); 
    } 
}

如果你将它与jQuery结合使用,请使用它:

$(document).ready(function() {
    $('input[type="text"]').each(function() {
        setSelectionRange(this, 0, 0);
    });
});

顺便说一下,这段代码完全没有经过测试。

编辑:在我看到您正在寻找输入元素之后更新了代码...