Form Yönetimi: preventDefault() ve Form Verilerini Yakalama

crazy_coder

Moderatör
Katılım
20 Şub 2026
Mesajlar
204
Tepkime puanı
0
Puanları
16

1. Neden preventDefault() Kullanıyoruz?​


HTML formları, doğası gereği bir butona tıklandığında (submit edildiğinde) sayfayı yenileyerek veriyi belirtilen adrese göndermeye çalışır. Ancak biz modern uygulamalarda sayfanın yenilenmesini istemeyiz; veriyi arka planda işlemek veya bir API'ye göndermek isteriz.

event.preventDefault() metodu, tarayıcının bu otomatik "sayfayı yenile ve gönder" eylemini durdurur.

JavaScript:
const form = document.querySelector("#iletisim-formu");

form.addEventListener("submit", (e) => {
e.preventDefault(); // Sayfa yenilenmesini durdurduk!
console.log("Form gönderimi engellendi, JS devrede.");
});

2. Form Verilerini Yakalama Yöntemleri​


Formdaki verilere ulaşmanın birkaç farklı yolu vardır. Projenizin büyüklüğüne göre doğru yöntemi seçmek önemlidir.

A. Tek Tek Elemanlar Üzerinden Erişim
Eğer sadece 1-2 input varsa, doğrudan id veya name üzerinden değerleri alabilirsiniz.
JavaScript:
const adInput = document.querySelector("#isim");
const emailInput = document.querySelector("#email");

// Form submit anında:
const isim = adInput.value;
const email = emailInput.value;

B. FormData Objesi (Tavsiye Edilen)
Çok sayıda input olan formlarda verileri tek tek çekmek zordur. FormData objesi, formdaki tüm verileri bir kerede bir anahtar-değer (key-value) yapısına dönüştürür.

JavaScript:
const myForm = document.querySelector("#kayit-formu");

myForm.addEventListener("submit", (e) => {
e.preventDefault();

const veriler = new FormData(myForm);

// Verileri okumak
console.log(veriler.get("kullanici_adi"));
console.log(veriler.get("sifre"));

});

3. Veriyi Obje Formatına Dönüştürmek​


Çoğu zaman yakaladığımız bu verileri bir API'ye (sunucuya) göndermek için JSON formatına çevirmemiz gerekir. Object.fromEntries metodu bu işlem için biçilmiş kaftandır.

JavaScript:
const formVerisi = new FormData(myForm);
const jsonVeri = Object.fromEntries(formVerisi.entries());

console.log(jsonVeri);
// Çıktı: { isim: "Ahmet", email: "[email protected]", mesaj: "Merhaba!" }

4. Form Doğrulama (Validation) Örneği​


Verileri yakalamadan önce, her şeyin kurallara uygun olduğunu kontrol etmek kullanıcı deneyimi için kritiktir.

JavaScript:
const loginForm = document.querySelector("#login");

loginForm.addEventListener("submit", (e) => {
e.preventDefault();

const email = loginForm.querySelector("#user-email").value;
const errorDiv = document.querySelector("#error-msg");

if (!email.includes("@")) {
    errorDiv.innerText = "Lütfen geçerli bir e-posta adresi girin!";
    errorDiv.style.color = "red";
} else {
    errorDiv.innerText = "Giriş yapılıyor...";
    // Burada Fetch API ile sunucuya gönderim yapılır
}

});

Özet Karşılaştırma Tablosu​


YöntemAvantajıDezavantajı
Sorgu Seçici (.value)Hızlı ve basit.Çok inputlu formlarda kod kalabalığı yapar.
FormDataOtomatik veri toplama.Dosya yükleme yoksa biraz karmaşık gelebilir.
Object.fromEntriesDoğrudan API uyumlu JSON üretir.Modern tarayıcı desteği gerektirir.



Sonuç

Form yönetimi, bir web uygulamasının kullanıcıyla el sıkıştığı andır. preventDefault() ile kontrolü ele alıp, FormData ile verileri organize ederek çok daha güvenli ve modern bir yapı kurabilirsiniz. Unutmayın, iyi bir form sadece veri toplamaz, kullanıcıyı doğru şekilde yönlendirir.
 
Geri
Üst