2016-06-19 4 views
0

Я создал прямую панель поиска в jQuery, но у меня есть проблема!jQuery keypress/keydown не работает должным образом

$(document).on('keydown', '.searchInput', function(){ // or keypress I have the same result 
    console.log($(this).val()); 
}); 

При нажатии кнопки в поле ввода .searchInput он записывает последнее значение, которое было. Например, если я типа a он будет регистрировать (пусто), то если я типа s (поэтому панель поиска имеет as в нем) он будет регистрировать a, то если я типа d (asd в строке поиска) он будет регистрировать as и так далее. Что я делаю не так? Спасибо!

+3

Проблема в том, что вы присоединяете событие к 'keydown'. это будет ** захватывать значение до того, как на самом деле произойдет вход **. если вы хотите захватить полное значение, используйте событие «keyup» вместо –

+0

@AkshayKhandelwal Мне действительно нужно использовать keydown (или keypess или что-нибудь, что срабатывает при нажатии клавиши). Есть ли что-нибудь еще, что я могу использовать? (как keydown, так и keypress don 't work)) – Jim

+1

Что вы подразумеваете под ** необходимо **. Есть ли какие-либо требования, которые говорят, что вам нужно, или есть другой обработчик событий, прикрепленный к клавиатуре. если позже это так, вы все равно можете использовать keyup, поскольку все обработчики событий получаются вызванными –

ответ

5

Если я правильно понял вопрос, вы хотите получить полное значение в текстовом поле, для которого вам необходимо прикрепить событие keyup, а не keydown.

$(document).on('keyup', '.searchInput', function(){ // or keypress I have the same result 
    console.log($(this).val()); 
}); 
+0

Нет. Я хочу использовать keydown, но по какой-то причине он не работает. Он регистрирует значение до последнего (тот, который теперь отображается на экране. Если я набрал 'asdf', он записывает' asd'. Если я набрал 'asd', он регистрирует' as' и т. Д.) – Jim

+1

с ключом, который вам нужен чтобы символ для текущего ключа был готов и добавьте его к доступной строке, что невозможно. Вместо этого я предлагаю вам использовать «keyup». –

Смежные вопросы