Я вижу одну вещь, которая может быть проблемой в вашем коде, но так как вы не пишете о том, что именно не работает, я не уверен, что это проблема.
$('select[name=list_length]').change(function(){
if($('#check_all').prop('checked'))
$('#check_all').click();
});
Здесь вы видите, установлен ли флажок, а затем вызываете событие click для него.
В обработчике события click вы снова проверяете, установлен ли флажок, и перебираете другие флажки.Однако событие click, которое вы вызываете в обработчике события change, изменит проверенное состояние флажка, и, таким образом, вы получите противоположный результат того, что задумано.
Как вам это решение?
var toggleCheckBoxes = function() {
if($(this).prop('checked')){
totalqt=0;
$('.checkbox').each(function(){
$(this).prop('checked', true);
doIt(this);
});
}else{
$('.checkbox').each(function(){
$(this).prop('checked', false);
doIt(this);
});
}
changeQt();
}
$('#check_all').click(toggleCheckBoxes);
$('select[name=list_length').change(function(){
if($('#check_all').is(':checked')){ toggleCheckBoxes(); }
});