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

Нека е дадено заблокирано поле за внес и копче:

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

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