TGViewer
Дивовижний світ веброзробки Дивовижний світ веброзробки @babichdev · 2.91K subscribers
Post #26 1.63K
Що ви зазвичай робите, коли треба сабмітнути форму? Дайте вгадаю. У вас є кнопка, на яку повішено onClick, і десь усередині в кращому випадку викликається form.submit(). В гіршому дані ви збираєте ручками. І валдуєте ручками. Зізнайтеся. Навіть якщо ви користуєтесь бібліотекою для форм, структура приблизно та сама.

Ну а якщо ваша кнопка знаходиться не всередині форми, а поза нею, то, відчуваю, я правий на всі 100%. Бо фреймворки привчили нас не думать, а вирішувати усі задачі в один звичний спосіб, хоча завжди існують гнучкіші підходи.

Як і існують можливості самої платформи, як то вбудоване HTML API, чи ті ж фокуси з CSS. До прикладу, як вирішити питання з кнопкою поза формою, щоб на неї не вішати взагалі ніяких обробників? Елементарно:

<form id="form" onSubmit={…}>…</form>
<button type="submit" form="form">
Зберегти
</button>


Ви просто вказуєте кнопці атрибут form зі значенням id відповідної форми, і ця кнопка тепер буде сабмітить цю форму з будь-якого куточка документу. Тож вам лишається, як і пасує, слухати лише подію submit цієї форми, не турбуючись, як саме вона відбувається.

Про вподобайки і поширення не буду просить. Бо ви і самі у мене молодчинки і все знаєте


І таких прикладів безліч. У HTML є <details> і <summary>, які дають розкривні блоки без жодного JS — ідеальні для табів, акордеонів, спойлерів. Є <dialog> із декларативним станом. Є form.reset(), який робить саме те, що написано. Просто, надійно, без костилів.

Тому кожного разу, коли рука тягнеться до addEventListener, зупиніться. Може, цей сценарій уже реалізовано в HTML або CSS — просто ви про нього не знали. Або знали, але забули. Чи забили.

Окрім очевидної вигоди — вивчити новий трюк, яким можна вихвалятися перед колегами, є й менш очевидні, до прикладу, нативна реалізація однозначно швидша, до того ж відтестована краще, ніж ваші костилі. Хоча мені зазвичай достатньо швидкості. І надійності.

P.S. Це не про You Might Not Need JS, який безбожно вже застарів, це про здоровий ґлузд та знання платформи, якою ви користуєтесь щодня.

🔥 Дивовижний світ веброзробки
  • ❤ 86
  • 🔥 30
More from @babichdev
  1. Sep 30, 2026Товариство, запрошую вас цієї суботи, 3 жовтня, на Fwdays Tech Summit — онлайн конференцію…
  2. Sep 28, 2026#збір_на_авто_для_21 Товариство, почнімо тиждень з доброго діла. Я би дуже хотів, аби ми ц…
  3. Sep 27, 2026Знайшов своє старезне резюме. Аж пустив скупу сльозу за тими часами, коли навіть з таким м…
  4. Sep 25, 2026Днями на редіті побачив допис, в якому автор питав, чому його лічильник часу на сторінці з…
  5. Sep 23, 2026Який ШІ найкращий для навчання? Відповідь проста — той, з яким ви чогось навчились. ШІ це…
  6. Sep 18, 2026Оце я, канєшна, провтикав. Конфа завтра, 19 вересня. Ще встигаєте взяти квиточок.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →