Forma strukturasi, input turlari, HTML5 validatsiya atributlari (required/pattern/min/max), select/textarea/fieldset — test va debugging mashqlari bilan.
Formalar — foydalanuvchidan ma'lumot to'plashning asosiy HTML vositasi. Bu bob — handbookdagi eng chuqur boblardan biri.
index.htmlHTML<form action="/submit" method="POST"><label for="name">Ism:</label><input type="text" id="name" name="name" required><button type="submit">Yuborish</button></form>
index.htmlHTML<input type="text"><input type="email"><input type="password"><input type="number" min="0" max="100"><input type="checkbox"><input type="radio" name="gender"><input type="date"><input type="file">
💡 Key Idea
type="email" yoki type="number" kabi maxsus turlar — brauzerga o'rnatilgan validatsiya va mobil qurilmalarda mos klaviatura (masalan raqamli klaviatura) ko'rsatish imkonini beradi, bu qo'shimcha JavaScript yozmasdan.
index.htmlHTML<input type="text" required minlength="3" maxlength="20"><input type="number" min="18" max="99"><input type="text" pattern="[A-Za-z]+" title="Faqat harflar">
index.htmlHTML<select name="city"><option value="tashkent">Toshkent</option><option value="xorazm" selected>Xorazm</option></select><textarea name="message" rows="4" cols="50"></textarea><fieldset><legend>Shaxsiy ma'lumotlar</legend><label for="name">Ism:</label><input type="text" id="name"></fieldset>
Task: Ism va email maydonlariga ega, to'g'ri label'langan oddiy forma yarating.
Task: Ism, familiya, yosh (18-99 oralig'ida) va izoh maydonlariga ega, required va min/max bilan validatsiya qilingan ro'yxatdan o'tish formasini yarating.
Task: fieldset orqali "Shaxsiy ma'lumotlar" va "Aloqa ma'lumotlari" deb ikkiga bo'lingan to'liq ro'yxatdan o'tish formasini yarating.
index.htmlHTML<input type="text" placeholder="Ismingiz"><button>Yuborish</button>
Your Task: Bu formada nechta accessibility/funksionallik muammosi bor?
<details> <summary>Solution</summary> Muammolar: (1) `<label>` yo'q — faqat `placeholder` accessibility uchun yetarli emas (placeholder input to'ldirilganda yo'qoladi); (2) `<form>` tegi yo'q; (3) `<button>`ning `type`i belgilanmagan (standart `submit`, lekin bu aniq yozilishi tavsiya etiladi). To'g'ri versiya: ```html <form action="/submit" method="POST"> <label for="name">Ismingiz:</label> <input type="text" id="name" name="name" placeholder="Ismingiz"> <button type="submit">Yuborish</button> </form> ``` </details>Formalar — label, to'g'ri input type, validatsiya atributlari (required, min/max, pattern) va guruhlash (fieldset/legend) orqali to'g'ri quriladi. Har bir input o'z label'iga ega bo'lishi shart.
<label for="..."> bilan bog'langan bo'lishi keraktype — brauzer validatsiyasi va mos klaviaturani "bepul" beradiplaceholder — label o'rnini bosa olmaydifieldset/legend — uzun formalarni mantiqiy guruhlaydiindex.htmlHTML<form action="/submit" method="POST"><label for="email">Email:</label><input type="email" id="email" name="email" required><fieldset><legend>Guruh nomi</legend>...</fieldset><button type="submit">Yuborish</button></form>
Mavzu bo‘yicha tushunchalaringizni interaktiv test orqali sinovdan o‘tkazing va natijalarni bilib oling.
Darslik ichidagi interaktiv muharrirda berilgan barcha amaliy topshiriqlarni bajaring va avto-tekshiruvdan o‘ting.
Test Sinovi
Hali topshirilmagan (kamida 75% kerak)
Amaliy Laboratoriya
Laboratoriya muharririda testlarni topshiring
Dars sifati va mazmunini yaxshilash uchun o‘z haqqoniy bahoingizni qoldiring.
Mavzuni to‘liq o‘zlashtirish uchun test sinovi, amaliy kodlash va bog‘liq darslar
O‘z bilimingizni interaktiv test savollari orqali tekshiring va darhol xatolarni tahlil qiling.
Nazariyani real kod yozish bilan mustahkamlang, avtomatik testlardan o‘ting va XP to‘plang.
Kurs bo‘yicha keyingi va bog‘liq mavzular: