HTML · 6/8
Formlar
Etiketli, klavyeyle kullanılabilir ve beklentisi anlaşılır bir form kurmak.
Önerilen çalışma: 25–45 dakika; örnekleri kendin uygula. Süre kişiye göre değişir.
Bu sayfada · 9 başlık
Başlamadan önce
Önceki dersteki örneği çalıştırmış olman ve dosya/çıktı ayrımını biliyor olman yararlı.
Öğrenme sırası: konuyu oku → çıktıyı tahmin et → örneği değiştir → alıştırmayı çöz → cevabını gerekçelendir.

Videoyla adım adım izle
Türkçe açıklamalı sessiz görsel anlatım. Sesli ders veya kesintisiz ekran kaydı değildir. Duraklatıp kendi ortamında uygula.
Video bölümleri ve tam metin
Formlar
Etiketli, klavyeyle kullanılabilir ve beklentisi anlaşılır bir form kurmak.
Kavramı kur
Form birden çok giriş alanını tek işlem için gruplar. label alanın ne istediğini anlatır; placeholder ise örnek verir ve yazmaya başlayınca kaybolur. Bu nedenle placeholder etiketi yerine geçmez. label üzerindeki for ile input üzerindeki id aynı olursa etikete tıklamak ilgili alanı odaklar.
Neden böyle çalışıyor?
name gönderilen verinin anahtarıdır. id belge içinde öğeyi tanımlar; iki alan aynı id değerini taşımamalıdır. type="email" gibi türler tarayıcıya beklenen biçim hakkında bilgi verir. required boş bırakmayı engelleyebilir, fakat bu kontroller verinin doğru kişiye ait olduğunu kanıtlamaz ve sunucu tarafı doğrulamasının yerini tutmaz.
Çalışma sırası
HTML formu eklemek veriyi otomatik olarak kaydetmez. Gerçek gönderim için action/method hedefini veya JavaScript akışını ayrıca tasarlamak gerekir. Başlangıçta gerçek kişisel bilgi kullanmadan alanlara örnek veri gir. Önce klavyeyle sırayı, hata mesajını ve gönder düğmesinin amacını değerlendir.
İkinci örnek · 1
label for ile input id eşleşir; kullanıcı etikete tıklayabilir. Kodun tamamı yazılı derste bulunur.
Kod
<form>
<label for="ornek-eposta">E-posta</label>
<input id="ornek-eposta" name="email" type="email" required>
<label for="konu">Konu</label>
<select id="konu" name="topic"><option>HTML</option><option>CSS</option></select>
<button type="button">Bu yalnızca arayüz denemesi</button>
</form>Beklenen sonucu oku
Gönderim yapmayan denemede type=button düğmesi kullan; gerçek kayıt varmış izlenimi verme.
Beklenen çıktı: Etiketi olan e-posta kutusu ve konu seçimi. Düğme veri göndermez.
Bir değeri sen değiştir
Etikete tıklayıp doğru kutunun odaklandığını kontrol et. Tab ile bütün alanları ve düğmeyi dolaş; görünür odak işaretini izle.
Hata nereden gelir?
İçeriği sadece placeholder ile açıklamak kullanıcı yazınca bilgiyi kaybettirir; görünür label bırak.
Kendi çözümünü kur
Bir submit düğmesini yalnızca yerel denemede kullan; alan boşken ve hatalı e-posta biçimindeyken tarayıcının davranışını karşılaştır. Aynı id değerini iki kez kullanma; her label kendi alanını tanımlamalı.
Çözüm varyasyonu · 1
Önce kendi denemeni yap; sonra bu varyasyonun girdileri ile sonucunu karşılaştır.
Kod
<form>
<label for="ad">Ad</label>
<input id="ad" name="name" autocomplete="given-name" required>
<label for="mesaj">Mesaj</label>
<textarea id="mesaj" name="message" rows="3"></textarea>
<button type="button">Örnek form</button>
</form>Kendini kontrol et
Veriyi gönderirken id mi name mi alan anahtarı olur? Yanıt: name; id belge içindeki öğeyi etiketle ilişkilendirmek gibi amaçlarla tanımlar.
Beklenen çıktı: Ad ve mesaj alanları; bu örnekte kayıt veya gönderim yapılmaz.
Konu anlatımı
Form birden çok giriş alanını tek işlem için gruplar. label alanın ne istediğini anlatır; placeholder ise örnek verir ve yazmaya başlayınca kaybolur. Bu nedenle placeholder etiketi yerine geçmez. label üzerindeki for ile input üzerindeki id aynı olursa etikete tıklamak ilgili alanı odaklar.
name gönderilen verinin anahtarıdır. id belge içinde öğeyi tanımlar; iki alan aynı id değerini taşımamalıdır. type="email" gibi türler tarayıcıya beklenen biçim hakkında bilgi verir. required boş bırakmayı engelleyebilir, fakat bu kontroller verinin doğru kişiye ait olduğunu kanıtlamaz ve sunucu tarafı doğrulamasının yerini tutmaz.
HTML formu eklemek veriyi otomatik olarak kaydetmez. Gerçek gönderim için action/method hedefini veya JavaScript akışını ayrıca tasarlamak gerekir. Başlangıçta gerçek kişisel bilgi kullanmadan alanlara örnek veri gir. Önce klavyeyle sırayı, hata mesajını ve gönder düğmesinin amacını değerlendir.
İlk örneği oku ve dene
Formlar
Formlar kullanıcıdan bilgi almanı sağlar. <input> bir yazı kutusu oluşturur; type ile ne tür bilgi beklendiğini söylersin (text, email, password). <label> kutunun ne için olduğunu yazar ve for ile kutunun id değerine bağlanır.
<form>
<label for="isim">Adın:</label>
<input id="isim" name="isim" type="text" placeholder="Ayşe">
<label for="eposta">E-posta:</label>
<input id="eposta" name="eposta" type="email" placeholder="ornek@eposta.com">
<button type="submit">Gönder</button>
</form>
▶ Sonuç
Ad ve e-posta kutuları ile bir Gönder butonu görünür. name alanları gönderilecek veriyi adlandırır. Bu örnek yalnızca form arayüzüdür; bilgiyi kaydeden bir sunucu içermez.
Adım adım neden böyle çalışıyor?
- label for ile input id eşleşir; kullanıcı etikete tıklayabilir.
- name verinin gönderimde kullanılacak anahtarıdır.
- required alanı boş bırakınca tarayıcı gönderimi engeller.
- Gönderim yapmayan denemede type=button düğmesi kullan; gerçek kayıt varmış izlenimi verme.
İkinci çözümlü örnek
Etiketli, klavyeyle kullanılabilir ve beklentisi anlaşılır bir form kurmak.
<form>
<label for="ornek-eposta">E-posta</label>
<input id="ornek-eposta" name="email" type="email" required>
<label for="konu">Konu</label>
<select id="konu" name="topic"><option>HTML</option><option>CSS</option></select>
<button type="button">Bu yalnızca arayüz denemesi</button>
</form>
▶ Sonuç
Etiketi olan e-posta kutusu ve konu seçimi. Düğme veri göndermez.
Kolaydan zora sen dene
- Etikete tıklayıp doğru kutunun odaklandığını kontrol et.
- Tab ile bütün alanları ve düğmeyi dolaş; görünür odak işaretini izle.
- Bir submit düğmesini yalnızca yerel denemede kullan; alan boşken ve hatalı e-posta biçimindeyken tarayıcının davranışını karşılaştır.
İpucunu aç
Aynı id değerini iki kez kullanma; her label kendi alanını tanımlamalı.
Üç görevin açıklamalı çözümünü oku
- for ve id aynı olunca etikete tıklamak girişe odaklanır.
- Tab sırası belge sırasını izler; odak görünür kalmalıdır.
- required boş alanı, type=email biçimi denetleyebilir; bu sunucuda doğrulamanın yerini tutmaz.
Bir çözüm varyasyonu gör
Çözüm varyasyonu
Önce kendi görevlerini dene. Bu varyasyonda girdi ve sonuçları karşılaştır.
<form>
<label for="ad">Ad</label>
<input id="ad" name="name" autocomplete="given-name" required>
<label for="mesaj">Mesaj</label>
<textarea id="mesaj" name="message" rows="3"></textarea>
<button type="button">Örnek form</button>
</form>
▶ Sonuç
Ad ve mesaj alanları; bu örnekte kayıt veya gönderim yapılmaz.
Yaygın hata ve çözümü
- İçeriği sadece placeholder ile açıklamak kullanıcı yazınca bilgiyi kaybettirir; görünür label bırak.
- required eklemek kötü niyetli isteği durdurmaz; gerçek uygulamada sunucuda da doğrula.
Kendini değerlendir
Ezberlemeden açıklayabiliyor musun?
Veriyi gönderirken id mi name mi alan anahtarı olur?
Açıklamalı yanıt
name; id belge içindeki öğeyi etiketle ilişkilendirmek gibi amaçlarla tanımlar.
Kendi çözümünde bir girdiyi değiştir. Çalıştırmadan önce beklenen sonucu yaz; gerçek sonuçla karşılaştır ve fark varsa hangi satırdan kaynaklandığını açıkla.
Kaynak ve çalışma ortamı
Örnekler küçük öğretim senaryolarıdır. Java/C#/PHP/Swift çalışma ortamını kendi cihazında ayrıca doğrula; yazılı sonuçlar beklenen davranışı açıklar.
Resmî dil belgeleriBu içerik işine yaradı mı?
Görüşünü aşağıdan işaretleyebilir ve varsa notunu bırakabilirsin.