Как собрать все отмеченные чекбосы jquery?

Получать я их получаю и передаю, но при "чеке" и снятии с "чека", переодически значение остается в массиве, так вот суть вопроса что не так?
Более детально - нажимаю на чекбокс, div отмечается как активный, далее прохожу по главному div и собираю все значения чекбоксов у которых div отмечен как активный, передаю полученный массив ajax, получаю переданный массив на странице обрабатываю и вывожу. В некоторых случаях даже при отмеченном главном div как активный, значение чекбокса не заносится в массив, а бывает наоборот, с div снята отметка о активности, а он по прежнему находится на странице (другая инфа обновляется).
Отмечаю div как активный:
if ("#fid input:checkbox:checked") {$("#fid input:checkbox:checked").parent().parent().addClass("checkbox-activ");}

Обхожу блок:
var val=$('#fid .checkbox-activ input').map(function() {return this.value;}).get()


Забыл упомянуть, вызываю так:
$("#fid").on('click', '.checkbox', function () {
  • Вопрос задан
  • 1604 просмотра
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Nevertheless, the most important concept to remember about the checked attribute is that it does not correspond to the checked property. The attribute actually corresponds to the defaultChecked property and should be used only to set the initial value of the checkbox. The checked attribute value does not change with the state of the checkbox, while the checked property does. Therefore, the cross-browser-compatible way to determine if a checkbox is checked is to use the property:
  • if ( elem.checked )
  • if ( $( elem ).prop( "checked" ) )
  • if ( $( elem ).is( ":checked" ) )

https://api.jquery.com/prop/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы