Предположим, мы имеем следующие разметки:Почему не происходит событие onChange?
<form>
<button type="button" id="all">check all</button>
<button type="button" id="none">check none</button>
<input type="checkbox" value="one" />
<input type="checkbox" value="two" />
<input type="checkbox" value="three" />
</form>
И следующий код JavaScript:
(function($, document) {
$('#all').on('click', function() {
$('input', $(this).parent()).prop('checked', 'checked');
});
$('#none').on('click', function() {
$('input', $(this).parent()).removeProp('checked');
});
$('input').on('change', function() {
alert(this.value);
});
}(jQuery, document));
(см http://jsfiddle.net/inst/h7kyq/1/)
Почему обработчик события OnChange Входной не выполняется, когда мы нажимаем на любой из кнопок?
При использовании '.prop()' на логическое свойство, использовать логическое значение. '.prop ('checked', true)' или '.prop ('checked', false)' –
Не используйте removeProp(), если вы не хотите окончательно удалить свойство, поскольку вы не можете снова использовать это свойство элемент. Прочитайте http://api.jquery.com/removeProp/ Как вы можете сказать в своей скрипке, как только вы нажмете кнопку «Удалить все», все функции перестанут работать. –