JavaScript

Form etkinliklerine yanıt verme

JavaScript'i, formunuzdaki kullanıcı etkileşimlerine yanıt vermek, ek form alanlarını ortaya çıkarmak, form göndermek ve daha pek çok işlem için kullanabilirsiniz.

Kullanıcıların ek form kontrollerini doldurmalarına yardımcı olun

Bir anket formu oluşturduğunuzu hayal edin. Kullanıcı bir seçeneği belirledikten sonra seçimle ilgili belirli bir soru sormak için ek <input> göstermek istiyorsunuz. Yalnızca alakalı <input> öğesini nasıl gösterebilirsiniz?

Bir <input> öğesini, yalnızca ilişkilendirilmiş <input type="radio"> seçiliyken görüntülemek için JavaScript kullanabilirsiniz.

if (event.target.checked) {
    // show additional field
} else {
   // hide additional field
}

Şimdi Demonun JavaScript kodu. aria-controls ve aria-expanded özelliklerini fark ettiniz mi? Bunları kullan ARIA özellikleri kullanıma sunduk.

Kullanıcıların sayfadan ayrılmadan form gönderebildiğinden emin olma

Bir yorum formunuz olduğunu düşünün. Okuyucu, yorum ekleyip formu gönderdiğinde sayfayı yenilemeden yorumu hemen görebilseler iyi olur.

Bunu sağlamak için onsubmit etkinliğini dinleyin, ardından varsayılan davranışı önlemek için event.preventDefault() kullanın. ve Getirme API'sini kullanarak FormData dosyasını gönderin.

Tarayıcı Desteği

  • Chrome: 42..
  • Kenar: 14..
  • Firefox: 39..
  • Safari: 10.1.

Kaynak

Arka uç komut dosyanız, POST isteğinin tarayıcıdan gelip gelmediğini kontrol edebilir (method="post" olan bir form öğesinin action özelliği kullanılarak) veya JavaScript'ten (ör. fetch() isteği).

if (req.xhr || req.headers.accept.indexOf('json') !== -1) {
    // return JSON
} else {
    // return HTML
}

Ekran okuyucu kullanıcılarını dinamik içerik değişiklikleri hakkında her zaman bilgilendirin. HTML'nize aria-live="polite" özelliğine sahip bir öğe ekleyin, ve bir değişiklikten sonra öğenin içeriğini güncelleyin. Örneğin, bir kullanıcı yorum gönderdikten sonra metni "Yorumunuz başarıyla yayınlandı" olarak güncelleyin.

ARIA canlı bölgeleri hakkında daha fazla bilgi edinin.

JavaScript ile doğrulama

Hata mesajlarının sitenizin stiline ve üslubuna uygun olduğundan emin olun

Varsayılan hata mesajlarının dili tarayıcılar arasında farklılık gösterir. Aynı mesajın tüm kullanıcılara gösterilmesini, ve mesajın sitenizin stil ve üslubuna uygun olduğundan emin misiniz? setCustomValidity()'ı kullanma Constraint Validation API yöntemi kullanabilirsiniz.

Kullanıcıların hatalar hakkında gerçek zamanlı olarak bilgilendirilmesini sağlayın

Form doğrulamaya yönelik yerleşik HTML özellikleri, kullanıcıları bilgilendirmek ve geçersiz form alanlarıyla ilgili kontroller yapın. Kullanıcılara bir form alanından ayrılır çıkmaz bilgilendirilmeleri uygun olmaz mı?

Şunu dinle: blur bir öğenin odağı kaybolduğunda tetiklenen etkinliği ve ValidityState arayüzünü kullanarak bir form kontrolünün geçersiz olup olmadığını belirleyebilirsiniz.

Kullanıcıların girdikleri şifreyi görebildiğinden emin olun

<input type="password"> için girilen metin varsayılan olarak belirsizdir. yardımcı olan çözümleri ayrıntılı olarak inceleyeceğiz. Girilen metnin görünürlüğünü değiştirmek için bir <button> göstererek kullanıcıların şifrelerini girmelerine yardımcı olun.

Demoyu deneyin. Şifreyi Göster <button> işlevini kullanarak girilen metnin görünürlüğünü değiştirebilirsiniz. Nasıl çalışır? Şifreyi Göster'i tıklayın. şifre alanının type özelliğini type="password" iken type="text" olarak değiştirir, ve <button> metni "Şifreyi Gizle" olarak değişir.

Şifreyi Göster düğmesinin erişilebilir olması önemlidir. aria-controls özelliğini kullanarak <button> ile <input type="password"> arasında bağlantı kurun.

Şifre şu anda gösteriliyor veya gizli durumdaysa ekran okuyucu kullanıcılarına bildirim göndermek için: aria-live="polite" ile gizli bir öğe kullanın ve metnini uygun şekilde değiştirin. Ekran okuyucu kullanıcılarının bir şifrenin ne zaman gösterildiğini ve ekranına bakan başka biri tarafından ne zaman göründüğünü bilmesi önemlidir.

<span class="visually-hidden" aria-live="polite">
    <!-- Dynamically change this text with JavaScript -->
</span>

Şifreyi göster seçeneğini uygulama hakkında daha fazla bilgi edinin.

Kaynaklar