2013-02-08 4 views
0
$(document).delegate("input#search-champions", "change", function(e) 

Всякий раз, когда я изменяю значение внутри search-champions, ему нужно щелкнуть за пределами текстового поля, чтобы он работал. Я хочу, чтобы функция запускалась всякий раз, когда изменяется значение внутри текстового поля.Какое событие вызывается при изменении текста внутри текстового поля?

Я забыл, что он называется, но это та же система, которую Google использует для своих поисков. Вы пишете, и он не покажет вам результаты с А.

+1

'keyup' ||' keypress'. – BenM

+0

является '$ (» # search-champions "). change (function() {...});' не работает? –

+0

'change' запускается только при потере фокуса. – BenM

ответ

2

Постарайся привязки к keyup событию вместо:

$(document).delegate("#search-champions", 'keyup', function(e) 

Кстати, не должно быть никакой необходимости снабдите ваш селектор с input - идентификаторы должно быть уникальным в любом случае!

+0

Спасибо большое. Это решило мою проблему. –

+0

Нет проблем. может захотеть принять ответ :) – BenM

1

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

$(document).delegate("input#search-champions", "keyup", function(e){ 
var elm=$(this); 
var str=elm.val(); 
//now you can get word starting from a either from some array or server call or ajax. 

}); 

Если вы используете JQuery UI. Он имеет функцию автозаполнения.

http://jqueryui.com/autocomplete/

$ (документ) .delegate ("вход # поиск-чемпионы", "изменение", функция (е)

+0

'change' действительно работает для элементов' input', но только тогда, когда они размыты. – BenM

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