
İçindekiler
Web geliştirme dünyasında kullanıcı etkileşimini sağlamak için formlar vazgeçilmez bir bileşendir. Formlar, kullanıcıdan veri almanın en doğal yollarından biridir ve doğru şekilde kullanıldığında güçlü bir kullanıcı deneyimi sağlar. JavaScript ise bu süreçleri daha dinamik, kullanıcı dostu ve etkileşimli hale getirir. Bu yazıda “JavaScript form kullanımı” konusunu detaylıca ele alacağız. Formlardan veri alma, form submit işlemi, input değerlerine erişme, form validasyonu, kullanıcı girdilerini işleme ve bu verileri sunucuya gönderme gibi başlıklara örneklerle değineceğiz.
Form Nedir?
HTML formları, kullanıcıdan bilgi almak amacıyla kullanılan temel yapılardır. Bir üyelik formu, giriş formu, arama kutusu ya da iletişim formu gibi birçok kullanım alanı vardır. Temel bir HTML formu şu şekilde tanımlanabilir:
<form id="myForm">
<label for="name">Adınız:</label>
<input type="text" id="name" name="name">
<button type="submit">Gönder</button>
</form>
Bu formun amacı, kullanıcıdan isim bilgisini almak ve bu veriyi bir işlemde kullanmaktır. Ancak bu işlemi gerçekleştirmek için form elemanlarını JavaScript ile kontrol etmemiz gerekir.
JavaScript ile Formdan Veri Alma
JavaScript, DOM (Document Object Model) sayesinde HTML içerisindeki elemanlara erişim sağlar. Bir input alanındaki değeri almak için genellikle value
özelliği kullanılır.
const nameInput = document.getElementById("name");
console.log(nameInput.value); // Kullanıcının girdiği isim
Bu şekilde, kullanıcı tarafından girilen veriye erişebilir ve onu kullanabiliriz. Örneğin bir kullanıcı kayıt formunda bu bilgiyi veritabanına gönderme işleminde kullanabiliriz.
Form Submit Olayını Yakalamak ve Yönetmek
Bir form gönderildiğinde varsayılan davranış sayfanın yenilenmesidir. Ancak JavaScript ile bu davranışı durdurabilir ve işlemleri sayfa yenilenmeden gerçekleştirebiliriz. Bu, özellikle modern web uygulamalarında önemli bir ihtiyaçtır.
const form = document.getElementById("myForm");
form.addEventListener("submit", function(e) {
e.preventDefault(); // Sayfa yenilenmesini engeller
const nameValue = document.getElementById("name").value;
console.log("Gönderilen isim:", nameValue);
});
Bu örnekte submit
olayı yakalanıyor ve preventDefault
metodu ile varsayılan davranış engelleniyor. Böylece kullanıcı girdisi alınıp JavaScript ile işlenebiliyor.
Çoklu Input Elemanlarından Veri Alma
Formlarda genellikle birden fazla input alanı bulunur. Bu alanlardan gelen verileri tek tek alabileceğimiz gibi daha toplu bir şekilde de alabiliriz.
Yöntem 1: Her input elemanına tek tek erişmek
const email = document.getElementById("email").value;
const password = document.getElementById("password").value;
Yöntem 2: FormData API Kullanmak
FormData nesnesi sayesinde tüm form verilerini anahtar-değer (name-value) formatında kolayca alabiliriz:
const formData = new FormData(form);
const name = formData.get("name");
const email = formData.get("email");
Bu yöntem, özellikle büyük formlarda oldukça kullanışlıdır.
Kapsamlı Örnek: Kayıt Formu İşleme
<form id="registerForm">
<input type="text" name="username" placeholder="Kullanıcı Adı">
<input type="email" name="email" placeholder="E-posta">
<input type="password" name="password" placeholder="Şifre">
<button type="submit">Kayıt Ol</button>
</form>
const registerForm = document.getElementById("registerForm");
registerForm.addEventListener("submit", function(e) {
e.preventDefault();
const formData = new FormData(registerForm);
const username = formData.get("username");
const email = formData.get("email");
const password = formData.get("password");
console.log("Kayıt Bilgileri:", username, email, password);
// Doğrulama
if (!username || !email || !password) {
alert("Lütfen tüm alanları doldurunuz.");
return;
}
if (!isEmailValid(email)) {
alert("Geçerli bir e-posta adresi giriniz.");
return;
}
alert("Kayıt başarılı!");
});
function isEmailValid(email) {
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
}
Checkbox ve Radio Button Elemanları ile Çalışmak
Kullanıcının seçenek belirtmesi gerektiğinde radio ve checkbox elemanları kullanılır.
<p>Cinsiyet:</p>
<input type="radio" name="gender" value="male"> Erkek
<input type="radio" name="gender" value="female"> Kadın
<br>
<input type="checkbox" name="agreement"> Kuralları kabul ediyorum
JavaScript ile bu alanlara şu şekilde erişilir:
const gender = document.querySelector("input[name='gender']:checked").value;
const agreement = document.querySelector("input[name='agreement']").checked;
Select (Dropdown) Kullanımı
Dropdown listeleri, kullanıcıya seçenek sunmak için yaygın şekilde kullanılır.
<select name="city">
<option value="istanbul">İstanbul</option>
<option value="ankara">Ankara</option>
<option value="izmir">İzmir</option>
</select>
const selectedCity = document.querySelector("select[name='city']").value;
Form Verisini Sunucuya Gönderme (Fetch API ile)
Formdan alınan veriler bir API’ye gönderilebilir. Modern web uygulamalarında fetch API sıklıkla kullanılır:
fetch("https://api.ornek.com/kayit", {
method: "POST",
body: new FormData(registerForm)
})
.then(response => response.json())
.then(data => console.log("Sunucudan gelen yanıt:", data))
.catch(error => console.error("Hata oluştu:", error));
Bu işlemle formdan alınan bilgiler, arka uç sunucuya POST yöntemiyle iletilmiş olur.
Formu Sıfırlamak
Bir formu temizlemek için .reset()
metodunu kullanabilirsiniz:
form.reset(); // Tüm alanları sıfırlar
Bu işlem, formu ilk haline döndürür ve tüm input değerlerini temizler.
Hataları Gösterme ve Geri Bildirim
Kullanıcılara girdilerinde bir hata yaptıklarında geri bildirim vermek önemlidir. Hataları göstermek için alert kullanabileceğiniz gibi HTML içerisine dinamik mesajlar da yazabilirsiniz:
const errorDiv = document.getElementById("errorMessage");
errorDiv.textContent = "Lütfen geçerli bir e-posta giriniz.";
errorDiv.style.color = "red";
Ekstra: Gerçek Zamanlı Doğrulama (Live Validation)
Kullanıcının yazarken hatalı değer girip girmediğini kontrol etmek için input
veya change
olayları kullanılabilir:
emailInput.addEventListener("input", function() {
if (!isEmailValid(emailInput.value)) {
emailInput.style.borderColor = "red";
} else {
emailInput.style.borderColor = "green";
}
});
Bu yöntemle kullanıcı formu göndermeden önce hataları düzeltebilir.
Sonuç
JavaScript ile form kullanımı, modern web projelerinde kullanıcı verilerini etkili bir şekilde alma, doğrulama ve işleme süreçlerinde kilit rol oynar. Form elemanlarına erişim, input değerlerini almak, submit işlemini yönetmek, validasyon yapmak ve verileri sunucuya göndermek gibi adımların tamamı JavaScript ile yönetilebilir.
Projelerinizde kullanıcı etkileşimini artırmak, hataları minimize etmek ve güçlü bir form deneyimi sunmak istiyorsanız, bu bilgileri uygulayarak geliştirme sürecinize dahil etmelisiniz. Formları daha etkili kullanarak, kullanıcı odaklı ve etkileşimli web sayfaları geliştirebilirsiniz. Kendi uygulamalarınızda bu örnekleri denemekten çekinmeyin ve farklı senaryolarla pratik yaparak becerilerinizi artırın. Daha fazlası için “Javascript” ve “Kod Atölyesi” kategorilerine bakabilirsin.
-
JavaScript ile formdan nasıl veri alınır?
JavaScript ile formdan veri almak için genellikle
document.getElementById
,querySelector
veyaFormData
gibi yöntemler kullanılır. Örneğin:const name = document.getElementById("name").value;
-
Form gönderildiğinde sayfa neden yenileniyor ve bunu nasıl engellerim?
Tarayıcılar varsayılan olarak form gönderimi sırasında sayfayı yeniler. Bunu JavaScript ile engellemek için
submit
olayındaevent.preventDefault()
metodu kullanılır. -
JavaScript ile form doğrulaması (validation) nasıl yapılır?
Form doğrulama işlemleri input değerlerinin geçerli olup olmadığını kontrol ederek yapılır.
-
Formdaki tüm input değerlerini nasıl alabilirim?
En kolay yöntemlerden biri
FormData
API’yi kullanmaktır. -
Form gönderildikten sonra input alanlarını nasıl sıfırlarım?
Formu temizlemek için
reset()
metodunu kullanabilirsiniz:document.querySelector("form").reset();
-
Form verilerini sunucuya nasıl gönderebilirim?
Form verilerini JavaScript ile
fetch()
kullanarak POST isteğiyle gönderebilirsiniz. -
Formdaki checkbox ve radio button’ların değerini nasıl alırım?
Seçili checkbox veya radio elemanlarının değerini şöyle alabilirsiniz:
const gender = document.querySelector("input[name='gender']:checked").value; const agreement = document.querySelector("input[name='agreement']").checked;
-
Kullanıcının yaptığı hatayı input alanının altında nasıl gösterebilirim?
Bir
<small>
etiketi veya benzeri bir element içine hata mesajı yazabilirsiniz. -
JavaScript ile formu dinamik olarak nasıl oluşturabilirim?
Yeni input alanları veya formlar oluşturmak için
createElement
kullanılabilir.
Kaynak w3schools
Henüz yorum yapılmamış. İlk yorumu siz yapabilirsiniz!