JQuery - Поместить курсор в поле ввода при нажатии ссылки
Я хотел бы поместить курсор в поле ввода после нажатия на конкретную ссылку. Я использую это для небольшой поисковой системы.
Представьте входное поле: []. Затем некоторые ссылки, которые добавляют строку ввода, такую как: Дания, Англия и т.д. В поле ввода.
Теперь мне нужно, чтобы курсор был помещен так: "Дания, [здесь]".
Возможно ли это?
* ОБНОВЛЕНИЕ *
Я использую этот код прямо сейчас, чтобы заменить текст, как бы вы добавили "курсор позиции"?
$('#denmark').click(function(){
$('#searchBoxBig').val('Denmark, ');
});
Ответы
Ответ 1
Вы можете установить, где находится курсор, в поле ввода с параметрами selectionStart
и selectionEnd
. Если вы не хотите, чтобы какой-либо текст был выбран, просто сделайте их равными друг другу.
Здесь вы можете сделать это:
var input = $("input");
input[0].selectionStart = input[0].selectionEnd = input.val().length;
Ответ 2
да, ухватить событие click на якоре, предотвратить действие по умолчанию и сфокусироваться на поле.
контекст функции содержит элемент, который был нажат, поэтому вы можете вычислить, в каком поле будет применяться вызов фокуса.
$(anchorSelector).live("click", function(e) {
e.preventDefault();
$(fieldSelector).focus()
return false;
})
Ответ 3
$(":input[name=xxxx]").focus();
А, нужен ли вам курсор после текста? Посмотрите здесь: jQuery Установите положение курсора в текстовой области он работает одинаково для ввода вместо текстового поля.
Это также работает, если вы используете другие селектора.