Задать вопрос
jasonOk
@jasonOk
Легче болтать, чем код писать

Правильная реализация с помощью Js или jQuery?

Как правильно выполнить следующую задачу:
Есть три чекбокса, если я снимаю галочки с двух, то третий становится disabled, затем нажимаю на один из выключенных и disabled убирается (третий чекбокс вновь становится активным). То есть в любой момент времени могут быть выключены только два чекбокса.
Простите за такой простой вопрос, но не знаю как правильно реализовать.
  • Вопрос задан
  • 277 просмотров
Подписаться 1 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Stepik
    JavaScript с нуля - основы языка и практика для начинающих
    2 недели
    Далее
  • Merion Academy
    Фронтенд-разработчик с нуля
    4 месяца
    Далее
  • Skypro
    JavaScript-разработчик с нуля
    9 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 2
VladimirAndreev
@VladimirAndreev
php web dev
на изменение чекбокса повесить обработчик события, в нем уже считать активные, выставлять disabled...
можно на jquery, можно и без...
Ответ написан
Комментировать
romy4
@romy4
Exception handler
jasonOk: тогда ещё проще. соберите изначально все чекбоксы и дёргайте единую функцию назвав например clicker. внутри счётчик, который по достижении 2 просто делает disabled для оставшейся кнопки

var boxes = [$("#id1"), .... ];
var boxes_clicked = 0;
var boxes_disabled = false;

function clicker()
{
  boxes_clicked += (this.checked ? +1 : -1 );
  if ( boxes_clicked >= 2 && !boxes_disabled )
 { 
     boxes_disabled = true;
     for ( var i=0; i < boxes.length; i++ )
        if ( ! boxes[i].checked )
            boxes[i].disabled = true;
     return;
 }
 if ( boxes_disabled )
  {
    boxes_disabled = false;
     for ( var i=0; i < boxes.length; i++ )
        if ( ! boxes[i].checked )
            boxes[i].disabled = false;
  }
}


за красоту кода не отвечаю, но приблизительно так.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы