имитировать событие onChange для запуска в поле ввода HTML - PullRequest
0 голосов
/ 03 ноября 2011

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

Эта ссылка на MSDN показывает способ имитации события щелчка.Можно ли использовать технику для имитации события изменения?

Ответы [ 4 ]

3 голосов
/ 03 ноября 2011

Вы можете использовать trigger():

$('#input-id').trigger('change');
1 голос
/ 03 ноября 2011

Вы можете вызвать change обработчик событий . Вы можете просто назвать это так:

jQuery('#my_field').change();

, который является ярлыком для:

jQuery('#my_field').trigger('change');

См. Больше в документации .change() (ее третий вариант без атрибутов).

0 голосов
/ 03 ноября 2011

Уже есть несколько хороших ответов на основе jQuery (хотя вы не использовали тег jQuery), но есть другой подход, который может работать для вас, если вы связываете событие изменения с вызовом функции.

Скажем, вы уже связали событие изменения с функцией doSomethingOnInputChange, как в ответе Влада ...

Вместо того, чтобы имитировать событие, вызвав «изменение», вы можете напрямую вызвать doSomethingOnInputChange, то есть вместовыполнения:

$('#textinput').trigger('change')

ваш javascript просто вызывает ту же функцию, которая вызывается в любом случае, когда вы запускаете событие:

doSomethingOnInputChange( ... );

Вы можете или не хотите передавать#textinput Элемент DOM в качестве параметра в прямом вызове или параметр события (но предоставление собственного параметра события делает этот подход малопригодным) - это зависит от того, что вам нужно сделать в функции.

0 голосов
/ 03 ноября 2011

Теоретически это следует сделать:

<input id="textinput" value="somevalue" name="somename" />

<script type="text/javascript">
    function doSomethingOnInputChange(e) {
        console.log('input on change');
    }

    $('#textinput').bind('change', doSomethingOnInputChange);


    $('#textinput').trigger('change');
</script>

Он связывает обработчик события с пользовательским событием 'change', а затем запускает событие.

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