我专注于使用jQuery的输入字段:
$("input:text").focus();
输入字段中已存在一些文本值。当我对焦时,光标在最后一个字母后面闪烁,如何将光标放在第一个字母的前面?
答案 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);
答案 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);