Как связать событие onchange TextBox с помощью JQuery? - PullRequest
28 голосов
/ 30 апреля 2009

Как я могу привязать событие OnChange TextBox к функции, используя jQuery?

Я пытаюсь это и не получится:

$(document).ready(function() {
    $("input#tags").bind("change",autoFill);
});

function autoFill() {
    $("#tags").autocomplete("/taglookup/", {
        width: 320,
        max: 4,
        highlight: false,
        multiple: true,
        multipleSeparator:",",
        scroll: true,
        scrollHeight: 300,
        delay: 10
    });
}

NB. Я хочу реализовать тег TextBox, подобный тегу для stackoverflow, который обнаруживает события OnChange и вызывает функции AJAX при вводе пользователем.

Ответы [ 7 ]

31 голосов
/ 30 апреля 2009

Вы ищете клавишу / нажмите / вверх

$("#inputID").keydown(function(event) {
    alert(event.keyCode);
});

или используя bind $ ("# inputID"). Bind ('onkeydown', ...

http://docs.jquery.com/Events

18 голосов
/ 22 января 2010

Вы должны изменить имя события с «изменить» на «onchange»:

$(document).ready(function(){
        $("input#tags").bind("onchange", autoFill);
          });

или используйте метод изменения ярлыка:

$(document).ready(function(){
        $("input#tags").change(autoFill);
          });

Обратите внимание, что событие onchange обычно срабатывает, когда пользователь покидает ввод, поэтому для автозаполнения лучше использовать событие keydown.

7 голосов
/ 27 ноября 2010

Сочетание keyup и change не обязательно достаточно (автозаполнение и вставка браузера с помощью мыши также изменяет содержимое текстового поля, но не запускает ни одно из этих событий):

Изменение запроса не работает в случае динамического изменения значения

1 голос
/ 20 августа 2011

То, что говорит Чад, за исключением того, что в этом случае лучше использовать .keyup, потому что при .keydown и .keypress значение ввода по-прежнему является более старым значением, т.е. самая новая нажатая клавиша не будет отражена, если вызывается .val () ,

Вероятно, это должен быть комментарий к ответу Чада, но у меня пока нет прав комментировать.

1 голос
/ 12 февраля 2010

Вот подсказка, почему вызов onchange () не может запустить вашу связанную функцию:

http://jehiah.cz/archive/firing-javascript-events-properly

1 голос
/ 07 июня 2009

Я отвечу второму Чэду Гранту, а также отправлю эту статью в блоге [удалена неработающая ссылка] для вашего удовольствия от просмотра.

0 голосов
/ 22 января 2011

если вы пытаетесь использовать плагин автозаполнения jQuery, то я думаю, что вам не нужно привязываться к событию onChange, оно будет

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