JS всегда выбирает 1 из 2 флажков - PullRequest
0 голосов
/ 28 августа 2018

У меня есть 2 флажка на моей странице. Первый идентификатор "status_1", второй идентификатор "status_2"

Я хочу сделать так, чтобы они оба были выбраны при загрузке страницы, и всегда оставляйте один выбранный при попытке отменить выбор обоих.

Так, например, если выбрано «status_1», «status_2» не выбрано, и пользователь пытается отменить выбор «status_1», «status_2» выбрать автоматически.

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Вот хороший приветственный подарок для нового пользователя на этом сайте: -)
Обычно мы хотели бы посмотреть, что вы попробовали сами, поэтому у нас есть некоторые доказательства того, что StackOverflow не является бесплатной службой программирования.

Этот код подписывается на событие onchange двух флажков и проверяет другой, если оба флажка не отмечены. Поскольку действительная логика одинакова для каждого случая, я переместил ее в функцию, чтобы избежать повторения кода.

function checkOther(a, b)
{
  if (!a.checked && !b.checked)
    b.checked = true;
}

window.addEventListener("load", function () {
  var s1 = document.querySelector("input[type='checkbox'][name='status_1']");
  var s2 = document.querySelector("input[type='checkbox'][name='status_2']");
  s1.addEventListener("change", function (e) {
    checkOther(e.target, s2);
  });
  s2.addEventListener("change", function (e) {
    checkOther(e.target, s1);
  });
}
<input type="checkbox" name="status_1" checked="checked" /> 1<br />
<input type="checkbox" name="status_2" checked="checked" /> 2
0 голосов
/ 28 августа 2018
if (!$("#checkbox1").is(":checked") && !$("#checkbox2").is(":checked")) {
    // both of them are unchecked u can eather check one or drop error
}

Вы можете инициировать его при смене элемента так.

$("#checkbox1").change(function() {
    if(this.checked) {
        //Do stuff
    }
});

Таким образом, теоретически вы можете создать функцию, которая проверяет, не отменены ли оба действия, и завершать ее обратным вызовом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...