专注于有价值的输入字段

时间:2010-03-14 14:28:40

标签: javascript jquery

我专注于使用jQuery的输入字段:

$("input:text").focus();

输入字段中已存在一些文本值。当我对焦时,光标在最后一个字母后面闪烁,如何将光标放在第一个字母的前面?

2 个答案:

答案 0 :(得分:11)

你可以使用我为你创建的这个小插件(从this script修改):

jQuery.fn.setCaret = function (pos) {
    var input = this[0];
    if (input.setSelectionRange) {
        input.focus();
        input.setSelectionRange(pos, pos);
    } else if (input.createTextRange) {
        var range = input.createTextRange();
        range.collapse(true);
        range.moveEnd('character', pos);
        range.moveStart('character', pos);
        range.select();
    }
};
// usage:
$('input:text').setCaret(0);

演示:jsbin.com/iwetu3/2

答案 1 :(得分:1)

添加 selectionStart 以使其更具交叉浏览器

jQuery.fn.setCaret = function (pos) {
    var input = this[0];
    if (input.setSelectionRange) {
        input.focus();
        input.setSelectionRange(pos, pos);
    } else if (input.createTextRange) {
        var range = input.createTextRange();
        range.collapse(true);
        range.moveEnd('character', pos);
        range.moveStart('character', pos);
        range.select();
    } else if(input.selectionStart){
        input.focus();
        input.selectionStart = pos;
        input.selectionEnd = pos;
    }
};
// usage:
$('input:text').setCaret(0);