Як встановити позицію курсора в текстовому полі за допомогою jQuery? У мене є текстове поле із вмістом, і я хочу, щоб курсор користувачів розміщувався з певним зміщенням, коли вони зосереджуються на полі. Код повинен виглядати приблизно так:
$('#input').focus(function() {
$(this).setCursorPosition(4);
});
Як виглядатиме реалізація цієї функції setCursorPosition? Якби у вас було текстове поле із вмістом abcdefg, цей виклик призведе до позиціонування курсору таким чином: abcd ** | ** efg.
Java має аналогічну функцію setCaretPosition. Чи існує подібний метод для javascript?
Оновлення: Я змінив код CMS для роботи з jQuery наступним чином:
new function($) {
$.fn.setCursorPosition = function(pos) {
if (this.setSelectionRange) {
this.setSelectionRange(pos, pos);
} else if (this.createTextRange) {
var range = this.createTextRange();
range.collapse(true);
if(pos < 0) {
pos = $(this).val().length + pos;
}
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}
}(jQuery);
$(this).get(0).setSelectionRange)
? Ви знаєте, що це точно так само, якthis.setSelectionRange
тільки повільніше і важче читати, правда? jQuery тут не робить для вас буквально нічого.