jQuery: Как перехватить событие изменения из ввода [type = 'checkbox'], если оно было проверено программно? - PullRequest
6 голосов
/ 29 января 2011

У меня есть <input type="checkbox" id="check1" />. Как перехватить событие change для этого флажка, если оно было изменено из сценария, т.е. $('#check1').attr('checked', 'checked');?

Спасибо.

Ответы [ 3 ]

5 голосов
/ 29 января 2011

Javascript не запускает события, основанные на программных изменениях элементов формы - чтобы предотвратить бесконечные циклы событий - поэтому у вас есть два (не идеальных) варианта:

  • Написать функцию-оболочкукоторый изменяет атрибут и вызывает ваш обратный вызов, а затем заставляет себя всегда использовать вашу функцию-обертку
  • Просто вызовите обратный вызов самостоятельно, когда вы измените атрибут
1 голос
/ 29 января 2011

Я не уверен, ожидаете ли вы этого

0 голосов
/ 29 января 2011

Возможно, это .

$(document).ready(function(){          
   $('#check1').click(function(){
      var n = $("#check1:checked").length;  
      alert(n);
   });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...