#jquery #focus
#jquery #фокусировка
Вопрос:
У меня есть этот автоматический поиск для ввода текста, который выполняет новый поиск, когда пользователь вводит букву. Теперь мне приходится фокусироваться на этом элементе после каждого поиска, но у меня во всех браузерах, кроме Firefox, текст при вводе выбирается. Если пользователь вводит другую букву, выделенный текст стирается, и это будет означать, что пользователь должен отменить выбор текста, прежде чем пользователь сможет ввести другую букву. Конечно, пользователь введет новую букву и подумает, что с этой программой что-то не так.
Возможно ли отменить выделение текста при фокусировке или вообще предотвратить это выделение?
Ответ №1:
Присвоение значения текстовому полю самому себе при фокусировке отменит выделение текста.
$('input').focus(function() {
var elem = $(this);
elem.val(elem.val());
} );
Комментарии:
1. Спасибо за это, но в IE существует проблема, заключающаяся в том, что при расфокусировке и повторном фокусировании он начнет писать тест при начале ввода текста …
2. @новичок: Теперь я понимаю, что вы имеете в виду, IE9 возвращает курсор к началу
input
. Какую версию вы используете?3. IE8, но это нормально для IE, ничего не работает из коробки, всегда нужны исправления
Ответ №2:
Я не слишком уверен, но я думаю, что это может быть решением или просто использовать атрибут onselect="return;"
$('#selector').select(function (e){
e.preventDefault();
return;
});
Комментарии:
1. какую версию chrome вы используете?
2. @town Я использую ту же версию, что и предоставленная вами демонстрационная версия, которая работает для меня
3. Как странно! Ну, я в тупике. Перейдем к Google … 🙂
Ответ №3:
Я получил его, работая со следующим кодом:
var searchInput = $('input.search');
var l = searchInput.val().length;
searchInput.attr('selectionStart', l);
searchInput.attr('selectionEnd', l);
searchInput.focus();
Комментарии:
1. Определенно не работает у меня в Chrome 11.0.696.65. Я бы рекомендовал использовать мое решение (не то чтобы я предвзятый или что-то в этом роде! 😉 ) as
selectionStart
иselectionEnd
не являются согласованными в разных браузерах.