Я в основном там, но не могу взломать это, у меня есть простая форма с флажками,
form#bookingsToDelete(
action='/list/batchDelete'
method='POST'
autocomplete='off'
)
tbody
each doc in list
-var id = doc._id;
tr
td
input.form-control(type='checkbox' name='ids[]' id='doc._id' value=doc._id onclick='return selectedForDelete();' )
td.bg-blue= doc.tourDate
td
и счетчик, который должен обновляться в зависимости от того, сколько ящиков было выбрано. Используя приведенный ниже JQuery, я могу увеличить его, но когда я щелкаю выбранный флажок (чтобы отменить выбор элемента), он не увеличивается на единицу, и я не понимаю, почему.
div.p-2.actionMenu-2.float-right
button.btn.btn-danger(type='submit' form='bookingsToDelete' value='Submit')
span Delete
span.deleteCounter.badge.badge-light
custom.js
let bcount ='1';
function selectedForDelete() {
if ($('input:checkbox').is(':checked') ) {
$('input:checkbox:checked').addClass('checked');
$('.deleteCounter').text( bcount ++ );
} else {
$('input:checkbox').removeClass('checked');
$('.deleteCounter').text( bcount -- );
}
}
Я пробовал bcount +1
bcount -1
и перемещал объявление var внутри функции. Если я нажимаю только один флажок, счетчик увеличивается и уменьшается, но как только я выбираю несколько флажков, счетчик увеличивается, но не уменьшается, когда я отменяю выбор поля.
Пожалуйста, любые рекомендации будут высоко оценены!
$('input:checkbox).is(':checked')
возвращает состояние первого флажка в документе. Он игнорирует все остальные элементы, соответствующие селектору. - person Pointy   schedule 15.01.2020