Ответ
Да, 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" прилепить. Она станет фокусируемой, но табом на неё не перескочишь, это как скрытая дверь, только для кода. Но это, блядь, не по канону, понимаешь? Как пришить пуговицу к яйцам — работает, но выглядит пиздецово.
Короче, правило простое: фокус — для интерактивных деталей, а не для упаковки. Не усложняй, блядь, без надобности.