Страницы

Поиск по вопросам

четверг, 5 марта 2020 г.

Снятие галочек с других checkbox-ов по условию

#javascript #html #jquery


Есть три чекбокса.
Нужно сделать так, чтобы если активен первый чекбокс, то убирались галочки со второго
и третьего, а если второй или третий активный - убиралась галочка с первого.

Вот что у меня получилось:



$('.food_in_tour input:checkbox').change(function() {
  if ($('#eat_all').prop('checked')) {
    if ($('#not_meat').prop('checked') || $('#not_sugar').prop('checked')) {
      $('.food_in_tour input:checkbox:not(#eat_all)').prop('checked', false);
    }
  } else if ($('#not_meat').prop('checked') || $('#not_sugar').prop('checked')) {
    if ($('#eat_all').prop('checked')) {
      $('#eat_all').prop('checked', false);
     }
  }
});
В чем ошибка, и как это можно реализовать?


Ответы

Ответ 1



Нужно проверять какой checkbox был нажат, а не состояние checkbox-ов после нажатия. Если нажали на #eat_all, то убираем выделение с других checkbox-ов. Если нажали на какой-то другой - убираем с #eat_all. Проверку можно делать, например, с помощью ID checkbox-a: $('.food_in_tour :checkbox').change(function() { if (this.id == "eat_all") { $('.food_in_tour :checkbox:not(#eat_all)').prop("checked", false); } else { $("#eat_all").prop("checked", false); } });


Комментариев нет:

Отправить комментарий