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:
twove özellik ayarlarına sixsahip oldukları için hariç tutuldu disabled.
three aynı ada sahip iki geçerli girişi olduğu için iki kez gönderildi.
fourBir çünkü gönderilmedi checkboxolmadığınıchecked
sixdaha yüksek bir önceliğe sahip checkedolduğu için olmasına rağmen gönderilmedi disabled.
sevenname=""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 checkboxgirdiyi hiddeniş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, =falsesürümü gördüğünden sürümü görmezden gelir =trueve böylece görmezse =true, onay kutusunun oluşturulduğunu ve kullanıcının hiç kontrol etmediği SomeBooleanPropertygirişlerin aksine, onu kontrol etmediğini belirleyebilir .