2012-04-15 5 views
0

У меня есть следующий код Javascript в index.php:JQuery проверить все флажки в DataTable

$(function() { 
    $('.checkall').click(function() { 
      $(this).find(':checkbox').attr('checked', this.checked); 
    }); 
}); 

я получить информацию с помощью AJAX и создать таблицу из этой информации с помощью таблиц Jquery данных внутри таблиц данных head У меня есть флажок с class='checkall'.

Почему флажок, который находится внутри головы, проверяет все остальные флажки, извлеченные через ajax?

* Я получаю не ошибок в Firebug

* Я проверил How to check every checkboxes in a jquery datatable?, но до сих пор не понимаю ... :(

ответ

1
$(function() { 
    $('.checkall').click(function() { 
      $(':checkbox').not(this).attr('checked', this.checked); 
    }); 
}); 

работы, если нет другого флажка на странице, кроме вашей головы флажка и те, которые вы хотите проверить

+0

не работает для меня ... – Eric

+0

работает сейчас, я добавил код непосредственно на элемент: OnClick = "$ (\ ': CheckBox \') нет (это) .attr. (\ 'checked \', this.checked); " – Eric

1

Я думаю, что ваша проблема, вероятно, с использованием $ (это) , который, вероятно, ссылается на «checkall» флажок.

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

пример, который вы цитируете показывает правильный способ сделать это, r eferenceing datatable.fnGetNodes()

0

В дополнении к тому, что сказал GreyBeardedGeek, если вы загружаете с помощью ajax, если ваш checkall-флажок создается с помощью вызова ajax и вставляется в DOM, тогда событие click не будет запускаться. В этом случае вы должны использовать «on» (или «live» в зависимости от вашей версии jQuery): http://api.jquery.com/live/. Пример:

$(document).on("click", ".checkall", 
    function(){ $(this).find(':checkbox').attr('checked', this.checked); }); 
Смежные вопросы