Menu

HTML Checkbox: checked, Değerler, Gruplar ve Özel Stiller

HTML'de <input type="checkbox"> ile checkbox yapma: label'lar, checked özelliği, işaretliyken ve değilken formun ne gönderdiği, checkbox grupları, indeterminate durumuyla tümünü seç ve stil verme.

Bu sayfada çalıştırılabilir editörler var - düzenle, çalıştır ve sonucu anında gör.

HTML'de checkbox nasıl yapılır

Checkbox bir <input type="checkbox"> elementidir. Metni tıklamak da onu işaretlesin diye onu metniyle birlikte bir <label> içine koy. Kutulardan birini ya da ikisini işaretle ve formun ne gönderdiğini görmek için Save'e bas:

Varsayılan durumda form yalnızca updates=on gönderir. İki kural bunu açıklar:

  • İşaretli bir kutu name=value gönderir. İkinci kutunun value değeri yoktur, bu yüzden varsayılanı, yani on gönderir.
  • İşaretlenmemiş bir kutu hiçbir şey göndermez. Ne newsletter=no ne de boş bir değer: ad veride hiç yoktur.

HTML'deki checked başlangıç durumunu belirler. Her boolean özellik gibi önemli olan var olmasıdır: checked="false" kutuyu yine de işaretler.

Checkbox özellikleri

ÖzellikNe yapar
nameİşaretliyken gönderilen anahtar
valueİşaretliyken gönderilen şey (varsayılan on)
checkedSayfa yüklendiğinde işaretli
requiredBu kutu işaretlenene kadar form gönderilmez
disabledDeğiştirilemez ve gönderilmez

Bir checkbox grubu

"Bunlardan istediklerini seç" için her kutuya aynı name ve farklı bir value ver. Grubun bir adı olsun diye onları bir <legend> ile birlikte bir <fieldset> içine sar:

Form topic=html ve topic=css gönderir: aynı ad iki kez. Çoğu sunucu framework'ü bunu bir liste olarak okuyabilir. İstisna PHP'dir: ad köşeli parantezle, yani name="topic[]" ile bitmedikçe yalnızca sonuncuyu tutar. JavaScript'te new FormData(form).getAll('topic'), ['html', 'css'] döndürür.

Kutu işaretsizken bir değer göndermek

Sunucunun açık bir "hayır" değerine ihtiyacı olduğunda, checkbox'tan önce aynı adı taşıyan gizli bir input koy. İşaretsizken yalnızca gizli değer gönderilir; işaretliyken ikisi de gönderilir ve sunucu sonuncuyu alır:

Continue'ya bas: terms kutusu işaretlenene kadar form reddeder, çünkü o required durumundadır. Sonra marketing=no ve terms=accepted gönderir; ilk kutu işaretliyse de marketing=no, marketing=yes ve terms=accepted gönderir. Rails gibi framework'ler tam olarak bu gizli input çiftini üretir. Buna güvenmeden önce sunucunun tekrarlanan bir adı nasıl okuduğunu kontrol et.

Tümünü seç ve indeterminate durumu

Bir checkbox'ın "bazıları ama hepsi değil" için üçüncü bir görünümü, bir çizgisi vardır. Yalnızca JavaScript'te vardır: box.indeterminate = true ata. Bir "tümünü seç" kutusu, kontrol ettiği kutuların bazıları işaretli olduğunda bunu kullanır:

indeterminate yalnızca görünümü (ve ekran okuyucuların duyurduğunu: "mixed" ya da "partially checked") değiştirir. Kutu altta yine ya işaretli ya da işaretsizdir ve form da bunu gönderir. Indeterminate bir kutuya tıklamak çizgiyi temizler ve onu değiştirir.

Bir checkbox'a tepki vermek için change olayını kullan, durumu için de box.checked değerini oku. Kutu işaretlendiğinde box.value değişmez.

Checkbox'lara stil vermek

En hızlı değişiklik, yerel checkbox'ı yeniden renklendiren ve tüm davranışını koruyan accent-color özelliğidir. Tamamen farklı bir görünüm için appearance: none yerel çizimi kaldırır ve input'a herhangi bir kutu gibi stil vermeni sağlar:

Özel kutu hâlâ gerçek bir checkbox'tır: tıklamayla ve Space ile değişir, formla gönderilir ve checkbox olarak duyurulur. Onu :checked ile çiz ve bir :focus-visible stili bırak, çünkü yerel çizim olmadan kendin eklemediğin hiçbir odak halkası yoktur.

Bir toggle switch

Switch, "bunu dahil et" yerine "şu anda açık/kapalı" anlamına gelen bir checkbox'tır. Onu appearance: none ile çiz ve ekran okuyucular işaretli bir checkbox yerine açık ya da kapalı bir switch duyursun diye role="switch" ekle:

inset-inline-start düğmeyi satırın başından konumlandırır, böylece switch sağdan sola yazılan sayfalarda olması gerektiği gibi diğer yöne kayar. Yalnızca birinin seçilebildiği gruplanmış evet/hayır seçimleri için HTML radio buton sayfasına bak.

Sık yapılan hatalar

  • İşaretsiz bir kutu için false beklemek. Hiçbir şey gönderilmez. Sunucuda eksik bir adı "kapalı" olarak ele al ya da gizli input'u ekle.
  • checked="false". Kutuyu yine de işaretler. Özelliği kaldır.
  • Label'ı olmayan bir checkbox ya da yanındaki metin <label> değil. Küçük kutu tek tıklama hedefi olur ve ekran okuyucular adsız bir "checkbox" duyurur. Bkz. HTML label.
  • value değerini unutmak, bu durumda bir gruptaki her kutu on gönderir ve sunucu onları ayırt edemez.
  • İşaretli olup olmadığını görmek için box.value okumak. box.checked kullan.
  • "Birini seç" için checkbox'lar. Radio butonlar bunun içindir.

Sıkça Sorulan Sorular

HTML'de checkbox nasıl yapılır?

Bir label içinde <input type="checkbox"> kullan: <label><input type="checkbox" name="terms" value="yes"> I agree</label>. Label metni de tıklanabilir yapar.

Bir checkbox'ı varsayılan olarak nasıl işaretli yaparım?

checked özelliğini ekle: <input type="checkbox" name="news" checked>. Önemli olan var olmasıdır, bu yüzden checked="false" de onu işaretler. JavaScript'te box.checked = true ya da false ata.

İşaretlenmemiş bir checkbox hangi değeri gönderir?

Hiçbirini. İşaretlenmemiş bir checkbox gönderilen veriden tamamen çıkarılır. İşaretli olan kendi value değerini, value yoksa da on gönderir. Sunucunun açık bir "hayır" değerine ihtiyacı varsa, checkbox'tan önce aynı adı taşıyan gizli bir input koy.

JavaScript'te bir checkbox'ın değerini nasıl alırım?

true ya da false olan box.checked değerini oku. box.value göndereceği değerdir ve kutu işaretli olsun ya da olmasın aynı kalır. İşaretlendiğinde tepki vermek için change olayını dinle.

Bir checkbox'ın rengini nasıl değiştiririm?

Ona accent-color ver: input[type=checkbox] { accent-color: #16a34a; }. Tamamen özel bir görünüm için appearance: none ayarla ve kutuyu ve onay işaretini CSS ile kendin çiz.

Coddy programming languages illustration

Coddy ile kodlamayı öğren

BAŞLA