Наизменично постављање атрибута без вредности

Нека је дат блокирани унос и дугме:

html<input id="elem" disabled>
<input id="button" type="submit">

Хајде да направимо тако да сваки клик на дугме доводи до промене стања уноса - са блокираног на одблокирано и обрнуто. За почетак, добијмо референце на наше елементе у променљиве:

javascriptlet elem   = document.querySelector('#elem');
let button = document.querySelector('#button');

А сада реализујмо замишљено:

javascriptbutton.addEventListener('click', function() {
  if (elem.disabled) {
    elem.disabled = false;
  } else {
    elem.disabled = true;
  }
});

Задатак се, међутим, може решити мањом количином кода:

javascriptbutton.addEventListener('click', function() {
  elem.disabled = !elem.disabled;
});
Задание 1

Објасните како дати код ради.

Задание 2

Дато је чекбокс-поље и дугме. Направите тако да сваки клик на дугме доводи до промене стања чекбокс-поља.