Изменение не работает, когда проверяется операция, выполненная кнопкой

0

У меня есть эти флажки с событием изменения. Когда я проверяю эти флажки с помощью кнопки. Событие изменения не срабатывает. Что с этим не так?

Html

  <button>aaa</button>  
  <input type="checkbox">
  <input type="checkbox">
  <input type="checkbox">
  <input type="checkbox"> 
  <input type="checkbox"> 
  <input type="checkbox">

Jquery

$(':checkbox').on('change',function(){
 alert("checked"); 
});

$('button').on('click',function(){
  $(':checkbox').prop('checked',true);
});

Демо- версия http://jsbin.com/idiweJo/1/

  • 0
    Что вы имеете в виду с помощью внешней кнопки ? Вы имеете в виду кнопку у вас рядом с флажками?
  • 0
    @putvande мой плохой. отредактировал это к кнопке :). да еще к нему
Теги:
onchange
checkbox

2 ответа

2
Лучший ответ

просто вызовите функцию изменения после проверки ее нажатием кнопки

$('button').on('click',function(){
  $(':checkbox').prop('checked',true).change();
});

обратите внимание: поскольку вы проверяете все флажки, событие изменения запускается для каждого флажка.

  • 0
    Можете ли вы объяснить, пожалуйста. Почему я должен вызвать изменения? Тпх
  • 0
    потому что вы программно меняете свойство значения флажка ... браузер не сможет отследить измененное событие этого элемента ... поэтому вы должны запустить его вручную, запустить его
Показать ещё 2 комментария
1

вам нужно использовать функцию триггера для этого.

проверьте этот jsfiddle. http://jsfiddle.net/gkCfZ/

$(':checkbox').on('change',function(){
 alert("checked"); 
});

$('button').on('click',function(){
  $(':checkbox').prop('checked',true);
    $(':checkbox').trigger("change");
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню