Form validatsiya β bu foydalanuvchi kiritgan ma'lumotni tekshirib, xato bo'lsa xabar berish jarayoni. Yomon validatsiya foydalanuvchini chalkashtirib quvib chiqaradi. Yaxshi validatsiya β foydalanuvchini xato qilmasdan to'g'ri yo'lga olib boradi. Bu UX qarori β texnik emas, balki dizayn va strategiya. Validation strategiyasi to'g'ri bo'lsa, form konversiya rate 30-50% oshishi mumkin.
Validation turlari
Client-side validation β JavaScript bilan brauzerda. Tez, foydalanuvchi darhol fikr oladi.
Server-side validation β PHP/Node yoki boshqa backend'da. Xavfsizlik uchun majburiy.
HTML5 validation β built-in, type=\"email\" yoki required attribut bilan. Oddiy holatlar uchun yetarli.
Eng yaxshi yondashuv β uchalasi birga ishlatish. HTML5 minimal, JavaScript real-time, server-side xavfsizlik.
Inline validation
Inline validation β har field uchun alohida, real-time. Foydalanuvchi field'ni to'ldirib boshqasiga o'tgach, validation ko'rsatiladi.
Bu submit tugmasini bosgandan keyin barcha xatolar ko'rsatilishidan ko'ra yaxshi tajriba β foydalanuvchi qaerda xato qilganini darhol biladi.
Real-time validation tactics
onBlur event β eng yaxshi yondashuv. Foydalanuvchi field'dan chiqsa validation ko'rsatiladi. Typing davomida emas (chalg'ituvchi).
onChange event β har keyboard input'da. Faqat success state uchun yaxshi (zudlik bilan green check).
Debounce β onChange'ni 300-500ms kechiktirib ishlatish. Typing tugagach validation. Eng yaxshi UX.
Email validation
Eng oddiy: HTML5 type=\"email\" attribut. Format tekshirish (asosiy).
Aniqroq: JavaScript regex. /^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$/.
Eng aniq: server'da actual email mavjudligini tekshirish (DNS MX record).
Password validation
Parol kuchi indikatori: kuchsiz/o'rta/kuchli/juda kuchli. Vizual progress bar bilan.
Talab'lar ro'yxati: \"Kamida 8 belgi\", \"Bir bosh harf\", \"Bir raqam\", \"Bir maxsus belgi\". Har talab bajarilganda yashil belgi.
Foydalanuvchi typing'da har talab fulfillment ko'rsatish β bu best practice.
Username validation
Real-time availability check. Foydalanuvchi typing davomida \"shu username mavjudmi\" tekshirish.
Server-side API call, debounce bilan. Foydalanuvchi har keyboard input'da server'ga so'rov yubormaslik.
Phone validation
O'zbekiston uchun: +998 9X XXX XX XX format. Auto-format input.
libphonenumber kutubxonasi β har mamlakat formatlari uchun.
Validation xabari
Xabar matni do'stona va konstruktiv bo'lishi shart. \"Xato\" β yomon. \"Email manzilingiz formatida xato. Misol: ali@misol.uz\" β yaxshi.
Tone of voice β \"Ma'zur tutasiz\" emas, \"Email manzilingizni qayta tekshiring\". Aniq harakat.
Joylashish: input ostida, qizil rang, kichik icon bilan.
Success feedback
Field to'g'ri to'ldirilganda β yashil belgi yoki check icon. Foydalanuvchi to'g'ri qilayotganini bilishi muhim.
Subtle animation: check icon fade-in. Stress'siz fikr.
Submit'da validation
Submit tugmasi bosilganda barcha field'lar tekshiriladi. Inline validation orqali ko'pchiligi allaqachon ko'rsatilgan bo'lishi kerak.
Submit'dan keyin yangi xato chiqsa β birinchi xato field'ga avtomatik scroll va focus.
Error summary
Katta formalarda β yuqorida error summary. \"Quyidagi xatolarni tuzating: 1) Email noto'g'ri, 2) Parol kuchsiz\". Har xato link orqali field'ga olib boradi.
Accessibility uchun ham foydali β screen reader foydalanuvchi.
Validation timing
Boshlovchi yoki ekspert foydalanuvchi farqi. Boshlovchi β har field'da tezda hint kerak. Ekspert β submit'da yetadi.
Strategik o'rta yo'l: inline validation, lekin xato ko'rsatish blur event'da emas, balki foydalanuvchi keyingi field'ga o'tgach.
Disabled submit button
Form to'liq emas β submit disabled. Foydalanuvchi nima qolganini bilmaydi.
Yaxshiroq: submit har doim active, lekin bosilganda noto'g'ri field'larga focus va xato ko'rsatish.
Mobile validation
Mobile'da validation alohida e'tibor. Tap to'g'ri β error matn katta bo'lsin. Klaviatura input type to'g'ri bo'lishi.
Autofill bilan ishlash: brauzer email avtomatik to'ldirsa, validation darhol passlash.
Server-side validation
Client-side bypass qilinishi mumkin. Server-side har doim majburiy.
SQL injection, XSS β server'da validation/sanitization. Prepared statements, htmlspecialchars().
Common validation xatolar
1. Submit'gacha kutish β barcha xato bir vaqtda. Foydalanuvchini chalkashtiradi.
2. Typing davomida validation β chalg'ituvchi.
3. Generic xato matni β \"Xato\". Aniq deyilmagan.
4. Faqat client-side β xavfsizlik xavfi.
5. Submit disabled β foydalanuvchi nima qoldi'ni bilmaydi.
Sayt.uz validation strategiyasi
Sayt.uz formalarda inline validation. Email β blur event'da format check. Parol β typing davomida talablar ro'yxati real-time update.
Xato matni do'stona va aniq: \"Parolingiz juda qisqa. Kamida 8 belgi kerak.\" Real-time success feedback yashil check icon bilan.
Submit har doim active. Bosilganda noto'g'ri field'larga focus va aniq xato ko'rsatiladi.
Server-side: prepared statements (SQL injection), htmlspecialchars (XSS), CSRF token. Xavfsizlik birinchi.
Natija: form completion rate 78% (sanoat 50-60%). Yaxshi validation UX'ning natija.