3
我專注於一個輸入字段使用jQuery:關注輸入字段值
$("input:text").focus();
已經有在輸入字段中某些文本的價值。當我聚焦時,光標在最後一個字母后面閃爍,我將如何將光標放在第一個字母的前面?
我專注於一個輸入字段使用jQuery:關注輸入字段值
$("input:text").focus();
已經有在輸入字段中某些文本的價值。當我聚焦時,光標在最後一個字母后面閃爍,我將如何將光標放在第一個字母的前面?
你可以使用這個小插件,我爲你創建(從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);
添加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);
+ 1但你能解釋一下嗎? – 2010-03-14 14:54:21
@D_N:它首先檢查input.setSelectionRange(除IE以外的每個瀏覽器使用的對象)是否可用。如果是,它將焦點放在字段上並將插入符號定位在指定位置。如果它不可用,它會檢查IE方法並使用它。 – moff 2010-03-14 15:05:31
啊哈,想知道這是不是瀏覽器的東西。謝謝。 – 2010-03-15 00:45:34