Ответ 1
После изменения значения вы можете запустить событие самостоятельно и, таким образом, вызвать все обработчики onchange.
jQuery('#element').change();
Если я выполняю jQuery (expr).change(function), тогда я могу запустить функцию события, когда пользователь внесет изменение в значение.
Можно ли запустить это, если он изменился программно, т.е. если я вызываю jQuery (expr).val( "moo" ).
или если какой-то простой старый JavaScript меняет значение?
Спасибо за любую помощь.
После изменения значения вы можете запустить событие самостоятельно и, таким образом, вызвать все обработчики onchange.
jQuery('#element').change();
Изменение значения непосредственно в JS не связано с тем, что jQuery может прослушать для запуска события изменения. Как говорит Сандер, вы можете запустить обработчик событий самостоятельно. Если у вас нет контроля над другим кодом, изменяющим эти значения, и это не вариант, вам не повезло. Единственный другой вариант, который мог бы работать, состоял бы в том, чтобы наблюдатель наблюдал за значением на интервале с помощью setTimeout
, что действительно беспорядочно и, вероятно, не очень хорошая идея.
jQuery v1 + поддерживает программный запуск обработчиков - я использовал этот метод в отличие от метода .change(), поскольку он позволяет при необходимости запускать несколько других обработчиков (например, некоторые пользовательские обработчики). Документация по API находится по адресу: http://api.jquery.com/trigger/