JavaScript ile Form Elemanlarını Yönetmek
Web sayfalarında kullanıcıdan veri almanın temel yolu formlardır. JavaScript kullanarak bu verileri anlık olarak okuyabilir, kullanıcıya geri bildirim verebilir veya verileri sunucuya göndermeden önce hazırlayabilirsiniz.
Modern Yaklaşım
HTML içinde
onclick veya onchange kullanmak yerine, JavaScript dosyanızda addEventListener kullanmak kodunuzu daha temiz ve yönetilebilir kılar.
1) Farklı Elemanlardan Değer Okuma
Form elemanlarının türüne göre değer alma yöntemleri küçük farklılıklar gösterir:
- Metin Alanları:
input.value - Seçim Kutuları:
select.value - Onay Kutuları:
checkbox.checked(True/False döner)
Kod Örneği: Form Verilerini Toplama
// 1. Formu ve elemanları seçelim
const myForm = document.querySelector("#userForm");
myForm.addEventListener("submit", function(event) {
// Sayfanın yenilenmesini engelleyelim
event.preventDefault();
// Modern Yöntem: FormData ile tüm verileri toplama
const formData = new FormData(myForm);
const ad = formData.get("username");
const eposta = formData.get("email");
const sozlesme = formData.get("terms"); // Checkbox
console.log(`Kullanıcı: ${ad}, E-posta: ${eposta}, Onay: ${sozlesme ? 'Evet' : 'Hayır'}`);
});
Sık Kullanılan Form Olayları
| Olay (Event) | Açıklama |
|---|---|
submit |
Form gönderildiğinde tetiklenir (En kritik olay). |
input |
Kullanıcı her karakter yazdığında tetiklenir (Anlık arama için ideal). |
change |
Eleman odağını kaybettiğinde veya seçim değiştiğinde tetiklenir. |
focus / blur |
Elemana odaklanıldığında veya odaktan çıkıldığında çalışır. |
💡 Profesyonel Öneri: Form verilerini sunucuya (PHP/Node.js) göndermeden önce mutlaka JavaScript ile bir ön kontrol yapın. Bu, hem sunucu yükünü azaltır hem de kullanıcı deneyimini iyileştirir.
Özet
event.preventDefault()kullanımı sayfanın gitmesini durdurmak için şarttır.- Çok fazla input olan formlarda
new FormData(form)kullanmak işinizi çok kolaylaştırır. - Kullanıcıya hata mesajlarını
alertyerine ilgili input'un hemen altında göstermek daha iyi bir UX sağlar.