Как выполнить функцию каждый раз, когда содержимое изменяется в поле ввода с помощью JQuery? - PullRequest
2 голосов
/ 25 мая 2011

У меня есть текстовое поле <input type="text" id="search" />, и я хотел бы выполнять функцию JavaScript каждый раз, когда пользователь изменяет содержимое в нем (по буквам).Как я могу сделать это с помощью jQuery?

Я пытался реализовать функцию в качестве ответа на Используя JQuery, как вы определяете, изменилось ли значение ввода текста, пока поле все еще имеет фокус?, но ничего не происходит для меня.

Вот мой HTML:

<html>
<head>
<script type="text/javascript" src="/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="/search.js"></script>
</head> 
<body> 
<form>
<input type="text" name="search" id="search" /> 
</form>
</body> 
</html>

Мой search.js:

var target = $('#search'), val = target.val();

function search()
{
    alert('search');
}

target.keyup(search);

Я также пытался с (ничего не происходит):

$('input[name=search]').change(function() {
    alert('changed');
})

И если я попытаюсь просто добавить HTML с помощью jQuery, это сработает:

$(function(){
    $("<p>hello</p>").insertAfter("#search");
})

1 Ответ

3 голосов
/ 25 мая 2011

Событие изменения не срабатывает, пока элемент управления не потеряет фокус.Если вас интересует только текст, вы можете использовать .keypress () , чтобы что-то делать до изменения содержимого, или .keyup () , чтобы что-то делать потом.

Вот пример использования нажатия клавиш в jsfiddle: http://jsfiddle.net/R6vmZ/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...