Form Sıfırlama Olayları ve Durum Yönetimi
Form sıfırlamayı yönetin ve kullanıcı etkileşimleri boyunca alan durumunu izleyin
Form Sıfırlama Olayları ve Durum Yönetimi, CoddyKit'te ücretsiz bir HTML Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, HTML Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. HTML Academy kursu toplamda 4 dersten oluşur.
reset Olayı
form.reset() çağrılması veya <button type="reset"> düğmesine tıklanması, form üzerinde bir reset olayı tetikler. Her alan başlangıç değerine ( value özniteliğine veya yeni girdiler için boş değere) döner. Olayı programatik olarak işlemek için dinleyin.
Varsayılan Değerler
Sıfırlama sırasında kullanılan başlangıç durumu, geçerli değer değil, defaultValue, defaultChecked veya defaultSelected özelliğidir. Bunlar HTML'de ayrıştırma sırasında belirlenen ve kullanıcı etkileşimiyle değişmeyen value/checked/selected özniteliklerini yansıtır.
Varsayılanları Programatik Olarak Güncelleme
Geçerli bir değeri yeni “varsayılan” yapmak (böylece sonraki sıfırlamalarda bu değere dönülmesini sağlamak) için input.defaultValue = input.value atamasını yapın. Başarılı bir kaydetme işleminden sonra kullanışlıdır: sonraki sıfırlamalar başlangıçtaki boş form yerine kaydedilen duruma döner.
form.addEventListener("submit", () => {
// After save, treat current as defaults
Array.from(form.elements).forEach((el) => {
if ("defaultValue" in el) el.defaultValue = el.value;
});
});reset Olayını Dinleme
reset olayı, değerler geri dönmeden önce tetiklenir. Sıfırlama sonrası durumu incelemek için işlemi bir sonraki mikro göreve erteleyin: form.addEventListener("reset", () => queueMicrotask(() => { ... use new values ... })). Olay zamanlamasının sıkça kafa karıştıran bir ayrıntısıdır.
Sıfırlamayı Önleme
Bir reset olay işleyicisinde e.preventDefault() çağırırsanız sıfırlama iptal edilir ve değerler olduğu gibi kalır. Önemli kullanıcı girdileri içeren formlarda “emin misiniz?” onayları için kullanışlıdır.
Değişiklik Durumunu İzleme
Formda değişiklik olup olmadığını anlamak için geçerli değerleri varsayılanlarla karşılaştırın: const dirty = Array.from(form.elements).some(el => el.value !== el.defaultValue). Bunu bir kaydet düğmesini etkinleştirmek veya devre dışı bırakmak ya da kaydedilmemiş değişiklikler için onay göstermek amacıyla kullanın.
beforeunload Onayı
Değişiklik içeren bir formdan ayrılırken kullanıcıyı uyarmak için: window.addEventListener("beforeunload", (e) => { if (isDirty(form)) { e.preventDefault(); } }). Tarayıcılar genel bir “siteden ayrılmak istiyor musunuz?” istemi gösterir; modern tarayıcılarda özel mesajlar artık desteklenmez.
Sıfırlama Düğmeleri Genellikle Kötü Kullanıcı Deneyimidir
Sıfırlama düğmeleri, tek bir yanlış tıklamayla her alanı sıfırlar ve çoğu zaman ciddi sonuçlara yol açar. Modern kullanıcı arayüzlerinin çoğu bu düğmeleri tamamen kaldırır veya bir onayın arkasına gizler. Sıfırlamaya ihtiyacınız varsa düğmeyi gönder düğmesinden uzağa yerleştirin ve tek adımlı bir geri alma seçeneği düşünün.
Form Durumunu Saklama
Uzun formlarda durumu girdi olaylarında localStorage'a kaydedin ve yükleme sırasında geri yükleyin. Kullanıcıların sekmelerin yanlışlıkla kapanması nedeniyle çalışmalarını kaybetmemesi için bunu “Taslak geri yüklensin mi?” istemiyle birlikte kullanın. Artık gerekmediğinde kaydedilen durumu temizlemek için sıfırlama ve gönderim işleyicileriyle birleştirin.
form.addEventListener("input", () => {
localStorage.setItem("form-draft", JSON.stringify(new FormData(form)));
});Özel Bileşenler ve Sıfırlama
Özel form öğeleri (web bileşenleri olarak oluşturulanlar), ElementInternals aracılığıyla form sıfırlamasına katılır: formResetCallback yönteminizde varsayılan değeri geri yükleyin. Bu, açıkça sıfırlanması gereken dahili bir girdiyi saran özel öğeler için gereklidir.
Form ile İlişkili Özel Öğeler
Özel bir öğe sınıfında static formAssociated = true bildirimini yapmak ve this.attachInternals() kullanmak, form yaşam döngüsüyle bütünleşmek için formResetCallback, formStateRestoreCallback, formDisabledCallback ve formAssociatedCallback işlevlerini kullanıma sunar.
Bilgi Kontrolü
form.reset() çağrıldığında her alan hangi değere döner?
Özet
reset olayı, form.reset() çalıştığında tetiklenir; alanlar defaultValue/defaultChecked/defaultSelected değerlerine döner. Kaydetme işleminden sonra varsayılanları güncelleyerek bunları yeni sıfırlama durumu yapın. Geçerli değerleri varsayılan değerlerle karşılaştırarak değişiklik durumunu izleyin, uzun formlar için localStorage'a kaydedin ve gezinme uyarıları için beforeunload kullanın. Özel öğeler formAssociated ve formResetCallback aracılığıyla bütünleşir.
Yapay zeka eğitmeniyle HTML öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 40
- Dersler
- 159
Sıkça Sorulan Sorular
“Form Sıfırlama Olayları ve Durum Yönetimi” dersi ücretsiz mi?
Evet — “Form Sıfırlama Olayları ve Durum Yönetimi” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve HTML Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. HTML Academy kursu toplamda 4 dersten oluşur.
“Form Sıfırlama Olayları ve Durum Yönetimi” dersinde ne öğreneceğim?
Form sıfırlamayı yönetin ve kullanıcı etkileşimleri boyunca alan durumunu izleyin HTML Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
HTML Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te HTML Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Form Sıfırlama Olayları ve Durum Yönetimi” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu HTML Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her HTML Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- FormData API'si
- Constraint Validation API
- reportValidity ve setCustomValidity
- Form Sıfırlama Olayları ve Durum Yönetimi