HTML'de, her <input />
öğe tek bir (ancak benzersiz olmayan) ad ve değer çiftiyle ilişkilendirilir. Bu çift sonraki istekte (bu durumda POST istek gövdesi) yalnızca <input />
"başarılı" ise gönderilir.
Yani <form>
DOM'nizde bu girişler varsa :
<input type="text" name="one" value="foo" />
<input type="text" name="two" value="bar" disabled="disabled" />
<input type="text" name="three" value="first" />
<input type="text" name="three" value="second" />
<input type="checkbox" name="four" value="baz" />
<input type="checkbox" name="five" value="baz" checked="checked" />
<input type="checkbox" name="six" value="qux" checked="checked" disabled="disabled" />
<input type="checkbox" name="" value="seven" checked="checked" />
<input type="radio" name="eight" value="corge" />
<input type="radio" name="eight" value="grault" checked="checked" />
<input type="radio" name="eight" value="garply" />
Sunucuya gönderilecek bu ad + değer çiftlerini oluşturur:
one=foo
three=first
three=second
five=baz
eight=grault
Dikkat:
two
ve özellik ayarlarına six
sahip oldukları için hariç tutuldu disabled
.
three
aynı ada sahip iki geçerli girişi olduğu için iki kez gönderildi.
four
Bir çünkü gönderilmedi checkbox
olmadığınıchecked
six
daha yüksek bir önceliğe sahip checked
olduğu için olmasına rağmen gönderilmedi disabled
.
seven
name=""
gönderilen bir özniteliği olmadığından gönderilmez.
Sorunuzla ilgili olarak: işaretlenmemiş bir onay kutusunun adının + değer çiftinin sunucuya gönderilmeyeceğini görebilirsiniz - ancak aynı adı paylaşan diğer girdiler de gönderilir.
ASP.NET MVC gibi çerçeveler, her checkbox
girdiyi hidden
işlenen HTML'deki bir girdiyle (gizlice) eşleştirerek bu şekilde çalışır:
@Html.CheckBoxFor( m => m.SomeBooleanProperty )
çizer:
<input type="checkbox" name="SomeBooleanProperty" value="true" />
<input type="hidden" name="SomeBooleanProperty" value="false" />
Kullanıcı onay kutusunu işaretlemezse, sunucuya aşağıdakiler gönderilir:
SomeBooleanProperty=false
Kullanıcı onay kutusunu işaretlerse, her ikisi de gönderilir:
SomeBooleanProperty=true
SomeBooleanProperty=false
Ancak sunucu, =false
sürümü gördüğünden sürümü görmezden gelir =true
ve böylece görmezse =true
, onay kutusunun oluşturulduğunu ve kullanıcının hiç kontrol etmediği SomeBooleanProperty
girişlerin aksine, onu kontrol etmediğini belirleyebilir .