Когда сработает функция изменения JQuery - PullRequest
2 голосов
/ 14 июня 2011

Я использую Jquery для установки какого-либо флага при каждом изменении значения input элементов.

Я написал простой скрипт, который работает нормально, но я заметил, что функция вызывается только тогда, когда элемент управления выходит из элемента input. Если пользователь вводит что-то и сохраняет элемент управления в том же input, тофункция не вызывается.

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

Вот мой код

$("input,textarea").live('change',function ()
{
   // Set flag
});

Я использую live() для привязки change() метода к динамически добавленным input элементам.

~ Ajinkya.

Ответы [ 3 ]

2 голосов
/ 14 июня 2011

Семантически, событие change запускается, когда элемент теряет фокус.Вот когда обновляется свойство value.

Если вы хотите работать при каждом нажатии клавиши, используйте событие keypress:

$("input,textarea").live('keypress',function ()
{
   // Set flag
});
1 голос
/ 14 июня 2011

Событие 'изменения' работает, как сказал один день. Но если вы хотите установить свой флаг всякий раз, когда что-то происходит, вы можете создать свое собственное событие. Например, с вашим пользовательским событием вы можете установить свой флаг, если пользователь меняет поле, нажимает клавишу, фокусируется на элементе или на чем угодно.

Чтобы узнать больше об этом: http://brandonaaron.net/blog/2009/06/4/jquery-edge-new-special-event-hooks

1 голос
/ 14 июня 2011

Использовать событие keyup / keydown вместо изменения:

$("input,textarea").live('keyup',function ()
{
   // Set flag
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...