переключить флажок с JavaScript - PullRequest
0 голосов
/ 07 марта 2019

Я хочу снять флажок с помощью JavaScript. У меня есть одна кнопка, которая просто снимает флажок и работает нормально:

function clear() {
document.getElementById("check").checked = "";
}

У меня есть еще одна кнопка, которую я хочу установить, если она не отмечена, и снимите флажок, если она включена. Ниже не снимите флажок. Я могу переключить оператор if и работает наоборот. В чем проблема?

function switchIt() {
if (document.getElementById("check").checked !== "checked") {
  document.getElementById("check").checked = "checked";
} else {
  document.getElementById("check").checked = "";
}

Спасибо!

Ответы [ 4 ]

2 голосов
/ 07 марта 2019

switch является зарезервированным словом , используйте другое

function switchIt() {
  var box = document.getElementById("check");
  
  if (box.checked) {
    box.checked = false;
  } else {
    box.checked = true;
  }
}

setInterval(switchIt, 1000);
<input type="checkbox" id="check" />
1 голос
/ 07 марта 2019

Обрабатывайте «флажок» как логическое значение, а не как строку.

Вы можете просто инвертировать его, как в

element = document.getElementById("check")
element.checked = !element.checked

Более показательный пример:

var $toggle = document.getElementById('toggle');
var $checkbox = document.getElementById('checkbox');



var toggle_checkbox = function() {
   $checkbox.checked = !checkbox.checked;
}

$toggle.addEventListener('click',toggle_checkbox);
<label>
  Checkbox:
  <input id="checkbox" type="checkbox" checked />
</label>
<button id="toggle">Toggle</button>
1 голос
/ 07 марта 2019

Вам нужен логический тип для этого.

Взгляните на эту ручку:

https://codepen.io/anon/pen/jJyXgO

let checkbox = document.querySelectorAll('#check')[0]

setInterval(function() {
  checkbox.checked = !checkbox.checked
}, 1000)
0 голосов
/ 07 марта 2019

Я никогда не видел, чтобы это было сделано с проверенной строкой. Попробуйте с булевым значением:

function change() {
    if (document.getElementById("check").checked !== true) {
      document.getElementById("check").checked = true;
    } else {
      document.getElementById("check").checked = false;
    }
}

или проще

function change() {
    document.getElementById("check").checked = !document.getElementById("check").checked
}

Не забывайте, switch зарезервирован, поэтому используйте другое имя, как я сделал с change ()

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