0
Koodi Прогрес
Поточний:0 днів
Рекорд:0 днів
🆓 FREE PROJECT

🚖 Урок 2: Events — форма замовлення

🖱️ Браузер слухає кожну твою дію!

addEventListener ставить "датчик" на елемент, що реагує на події.

Сьогодні: click, change, input, submit + e.preventDefault()!

💡
FUN FACT!

🚕 Uber та Bolt обробляють мільйони подій на секунду — click, scroll, touch!
📱 Кожен тап на екрані — це Event який слухає JavaScript!

🧠
А ТИ ЗНАВ?

📜 Раніше писали <button onclick="doSomething()"> — JS прямо в HTML!
😱 Уяви 100 кнопок — і в кожній JavaScript... Хаос!
addEventListener — це чистий код: HTML окремо, логіка окремо!

🚨
addEventListener — це датчик руху!
Уяви датчик руху в магазині — коли хтось заходить, дзвінок дзвенить.

addEventListener('click', function) — це такий же датчик!
Він чекає на дію і викликає функцію коли вона відбулась.
📁
Чому окремі файли?
index.html + style.css + app.js
📄
index.html
Структура
"Що на сторінці?"
🎨
style.css
Вигляд
"Як виглядає?"
app.js
Логіка
"Що робити?"
🤔 Навіщо розділяти?
Легше читати — кожен файл має одну задачу
Легше знаходити баги — проблема зі стилями? Дивись CSS!
Командна робота — дизайнер редагує CSS, програміст — JS
Кешування — браузер зберігає CSS/JS окремо, сторінка швидша
🔗 Як вони з'єднані?
<link rel="stylesheet" href="style.css"> — підключає стилі
<script src="app.js"></script> — підключає JavaScript
📱 ЖИВИЙ ДОДАТОК
Форма замовлення таксі
9:41 🔋 100%
🚖 KOODI TAXI
🚕
Стандарт
₴98
🚖
Комфорт
₴113
🚗
Бізнес
₴168
₴98

👆 Клікай на клас авто — ціна змінюється миттєво!

📊
Event Explorer
Лог click/input/change в реальному часі!
📋 Лог подій з'явиться тут...
🛑
preventDefault() Demo
Порівняй поведінку з/без preventDefault
❌ БЕЗ preventDefault
Перейти на Google
Сторінка відкриється...
✅ З preventDefault
Перейти на Google
Клікни — нічого не станеться!
💡 Коли використовувати? Форми (submit), посилання, кнопки — коли хочеш контролювати поведінку!
1
📄 HTML форма замовлення
📝 Форма — це контейнер для полів вводу.
<form> об'єднує inputs і має подію submit!
У вкладці index.html вже є форма! Перевір:
<form id="orderForm"> <h1>🚖 Замовити таксі</h1> <input id="pickup" placeholder="📍 Звідки?"> <input id="destination" placeholder="🏁 Куди?"> <select id="carType"> <option value="economy">🚕 Стандарт — ₴98</option> <option value="comfort">🚖 Комфорт — ₴113</option> <option value="premium">🚗 Бізнес — ₴168</option> </select> <p id="price">Ціна: ₴98</p> <button type="submit">🚖 Замовити</button> </form>
🧪 e.preventDefault() потрібен щоб...
💡 id="orderForm" — унікальний ідентифікатор форми

💡 id="carType" — select для вибору класу авто

💡 id="price" — параграф з ціною який будемо змінювати

💡 type="submit" — кнопка відправки форми
2
🔄 Подія change — зміна ціни
🎚️ change спрацьовує коли користувач змінив значення select/input.
Як перемикач світла — клац, і щось змінилось!
Перейди у app.js та ДОДАЙ:
// Ціни для кожного класу const prices = { economy: 98, comfort: 113, premium: 168 }; // Знаходимо елементи const carType = document.getElementById('carType'); const price = document.getElementById('price'); // Слухаємо зміну вибору carType.addEventListener('change', function(e) { const selected = e.target.value; price.textContent = 'Ціна: ₴' + prices[selected]; });
🧪 e.target повертає...
💡 e.target — елемент на якому сталася подія (select)

💡 e.target.value — обране значення (economy/comfort/premium)

💡 prices[selected] — отримуємо ціну з об'єкта

💡 'change' — подія спрацьовує при зміні вибору
3
📤 Подія submit — відправка форми
🚫 submit за замовчуванням перезавантажує сторінку!
e.preventDefault() — СТОП! Ми самі вирішимо що робити.
ДОДАЙ нижче в app.js:
// Знаходимо форму const form = document.getElementById('orderForm'); // Слухаємо відправку form.addEventListener('submit', function(e) { // СТОП! Не перезавантажуй сторінку! e.preventDefault(); // Отримуємо дані const pickup = document.getElementById('pickup').value; const dest = document.getElementById('destination').value; // Показуємо замовлення alert('🚖 Замовлення!\nЗвідки: ' + pickup + '\nКуди: ' + dest); });
🧪 Подія "input" спрацьовує...
💡 e.preventDefault() — зупиняє стандартну поведінку (перезавантаження)

💡 'submit' — подія при відправці форми

💡 .value — отримуємо текст з input

💡 alert() — показуємо повідомлення користувачу

▶️ Натисни RUN і перевір!

Обери клас авто — ціна зміниться! Натисни "Замовити" — побачиш alert!

🏆 Що ти вивчив:

addEventListener — слухаємо події
e.target — елемент на якому подія
e.preventDefault() — зупиняємо дефолт
change/submit/input — типи подій

✅ Коли все працює:

Натисни "Готово" в редакторі!

⏱️ ~15 хв • Урок 2 з 8

Потрібна допомога?

💡 Підказка
🤖 AI-KOODI
HTML index.html ✏️
CSS style.css
JS app.js
1 2 3 4 5 6 7 8 9 10
localhost/taxi.html
🚖

Напиши код і натисни Run ▶