Будет ли работать focus навешанный на форму

Ответ

Да, focus на форме работать не будет, так как форма сама по себе не является фокусируемым элементом. Фокус можно навесить только на интерактивные элементы внутри формы, такие как <input>, <button>, <select> и т.д.

Пример:

<form id="myForm">
  <input type="text" />
</form>

<script>
  // Не сработает
  document.getElementById('myForm').focus();

  // Сработает
  document.querySelector('#myForm input').focus();
</script>

Для фокусировки формы можно либо фокусировать первый интерактивный элемент внутри неё, либо добавить tabindex="-1" к форме, сделав её фокусируемой (но это нестандартное поведение).

Ответ 18+ 🔞

Ага, вот смотри, тут такая ебля классическая вылезает, как с этой формой. Ну, типа, ты ж думаешь: форма — она и в Африке форма, на неё focus() повесить — элементарно. А нихуя подобного, ёпта!

Форма-то, сука, сама по себе — не фокусируемый элемент, как вот этот столб у тебя перед домом. Ты на него табом перейти не можешь, он просто стоит, блядь, как украшение. Так и форма: она контейнер, обёртка, а фокус ловить должны только её внутренности — всякие инпуты, кнопки, селекты, эта... хитрая жопа интерфейса.

Вот смотри, как это выглядит в коде, тут всё чётко:

<form id="myForm">
  <input type="text" />
</form>

<script>
  // Не сработает — нихуя не произойдёт, тишина!
  document.getElementById('myForm').focus();

  // А вот это — о, да! Фокус попадёт прямиком в инпут, где ему и место.
  document.querySelector('#myForm input').focus();
</script>

Так что если тебе прям позарез нужно, чтобы форма в фокусе была — ну, знаешь, бывают такие перфекционисты, — то можно ей tabindex="-1" прилепить. Она станет фокусируемой, но табом на неё не перескочишь, это как скрытая дверь, только для кода. Но это, блядь, не по канону, понимаешь? Как пришить пуговицу к яйцам — работает, но выглядит пиздецово.

Короче, правило простое: фокус — для интерактивных деталей, а не для упаковки. Не усложняй, блядь, без надобности.