2015-08-25 6 views
2

У меня есть функция, которая должна ловить изменения для всех флажков. Он работает, когда ящики щелкают вручную, но не работают, когда функция toggleAll() вызывает их.Как проверить флажки с jQuery

В любом случае, чтобы исправить это?

$(function() { 
    $(":checkbox").change(function(){ 
    if (this.checked) { 
     alert(this.id+' is checked'); 
    } else { 
     alert(this.id+' is not checked'); 
    } 
    }); 
}); 

function toggleAll() { 
    var selectAllCheckbox = $("#selectAllCheckbox"); 
    if (selectAllCheckbox.prop('checked')) { 
     // uncheck them all 
     $("[id^=friendRequestCheckbox]").attr('checked', false); 
    } else { 
     // check them all 
     $("[id^=friendRequestCheckbox]").attr('checked', true); 
    } 
} 

Я бег старой версии JQuery и не обновлены до новой версии, включая prop, только в том случае, релевантно.

ответ

3

При программном изменении элементов вы также должны запускать событие программно. Попробуйте:

$("[id^=friendRequestCheckbox]").trigger('change') 
+0

Подробности доступны на http://api.jquery.com/trigger/ –

+1

Спасибо, очень простое и элегантное решение. Отметьте как ответ, как только это позволит мне. Спасибо за быстрый ответ. – SISYN

Смежные вопросы