1 Ekim 2026 - 01:41
HTML Formlarında Constraint Validation API ile Hata Yönetimi Görseli
HTML5 & CSS3

HTML Formlarında Constraint Validation API ile Hata Yönetimi

Yorumlar

HTML form doğrulaması yalnızca required eklemekten ibaret değildir. Constraint Validation API; alanın neden geçersiz olduğunu öğrenmeyi, özel hata mesajı göstermeyi ve formu JavaScript ile güvenli biçimde denetlemeyi sağlar. Sunucu tarafı doğrulamanın yerini almaz, ancak kullanıcı hatalarını daha erken yakalar.

Önce yerleşik kısıtları tanımlayın

HTML
<form id="signup">
  <label for="email">E-posta</label>
  <input id="email" name="email" type="email" required>

  <label for="password">Parola</label>
  <input id="password" name="password" type="password"
         minlength="12" required>

  <button>Kaydol</button>
</form>

Tarayıcı valueMissing, typeMismatch ve tooShort gibi geçerlilik durumlarını kendisi üretir.

checkValidity ve reportValidity farkı

JAVASCRIPT
const form = document.querySelector('#signup');

console.log(form.checkValidity());
form.reportValidity();

checkValidity() geçerlilik sonucunu döndürür ve geçersiz alanlarda invalid olayı oluşturur. reportValidity() buna ek olarak tarayıcının kullanıcı arayüzünü göstermesini ister.

Özel iş kuralını setCustomValidity ile ekleyin

JAVASCRIPT
const password = document.querySelector('#password');

password.addEventListener('input', () => {
  const hasNumber = /\d/.test(password.value);
  password.setCustomValidity(
    hasNumber ? '' : 'Parola en az bir rakam içermeli.'
  );
});

Geçerli duruma dönüldüğünde mesaj mutlaka boş metne çevrilmelidir; aksi halde alan geçersiz kalır.

Hata özetini erişilebilir tutun

HTML
<div id="form-errors" role="alert" aria-live="polite"></div>

Renk tek başına hata göstergesi olmamalıdır. Metin mesajı, alan etiketi ve gerektiğinde aria-describedby bağlantısı kullanın. Geçersiz gönderimde odağı ilk problemli alana taşıyabilirsiniz:

JAVASCRIPT
form.addEventListener('submit', (event) => {
  if (!form.checkValidity()) {
    event.preventDefault();
    form.querySelector(':invalid')?.focus();
  }
});

İstemci doğrulaması kolaylık sağlar; istek JavaScript dışından gönderilebilir. Aynı kuralları sunucuda tekrar uygulayın ve kullanıcı girdisini doğrulanmış kabul etmeyin.

Başvuru: WHATWG HTML constraint validation standardı.

Benzer Yazılar

Yorumlar ()

Henüz yorum yok. İlk yorum yapan sen ol!

Yorum Yap