Проверить все функции проверяет все флажки, даже отключенные - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть функция, которая проверяет все флажки, которые я хотел бы добавить к ней .not (: отключено), но когда я добавил ее после .is, возникла ошибка.Как я могу предотвратить установку отключенных флажков?

function selectAllCheckBoxes( table, checkBoxId )
{
    $( 'input', table.fnGetNodes()).prop( 'checked', $( '#' + checkBoxId ).is( ':checked' ).not(':disabled' )
}

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019

Как сказано, Is возвращает логическое значение.Поскольку вы не используете логическое значение, вы можете вместо этого использовать фильтр.

$('input').filter(':checked' ).not(':disabled').each(function(){
  console.log($(this).attr('id'))
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="checkbox1" type="checkbox" checked disabled>
<input id="checkbox2" type="checkbox" checked>
<input id="checkbox3" type="checkbox" checked disabled>
<input id="checkbox4" type="checkbox" checked>
0 голосов
/ 27 сентября 2019

добавил его после того, как .is выдало ошибку

.is возвращает логическое значение, поэтому вы не можете затем связать с ним функцию фильтра jquery.

Это выдаст ошибку:

$(..).is(":checked").not(":disabled")

Однако это только частично проблема, так как ваше требование:

Как я могу предотвратить установку отключенных флажков

, поэтому проверка :disabled должна идти против флажков, которые вы проверяете, а не тех, которые вы используете для проверки, должны ли они проверяться

, т. Е. Здесь:

$('input').not(":disabled").prop(...

Обновленный код

function selectAllCheckBoxes(table, checkBoxId)
{
    $('input', table.fnGetNodes())
        .not(":disabled")
        .prop('checked', $('#' + checkBoxId).is(':checked')
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...