为什么复选框的值为on

时间:2011-06-08 20:37:24

标签: asp.net html asp.net-mvc asp.net-mvc-3

我有一个像这样的复选框:

<label for="TBMasterProduct.BloodTestEnabled">Blood Test Enabled?</label>
<input type="checkbox" name="TBMasterProduct.BloodTestEnabled" id="TBMasterProduct_BloodTestEnabled" class="cb" />

当我提交表单时,它会向TBMasterProduct.BloodTestEnabled发送值'on'

为什么复选框会发布该值?当然应该是真/假

3 个答案:

答案 0 :(得分:11)

  

为什么复选框会发布该值?

如果您没有使用on属性明确设置,则浏览器默认值为value

在撰写本答案时,这是非标准的错误恢复。在HTML 4中,the value attribute is mandatory for checkboxes。 HTML 5 makes the attribute optional with a default of on

  

当然应该是真/假

没有。选中复选框(因此成功),以便提交值,或者不提交,复选框根本不会出现在提交的数据中。

单个复选框可能具有布尔状态,但多个输入可以共享一个名称以对其进行分组。然后,这些值可以区分列表中的哪些项目被选中。

答案 1 :(得分:2)

您的复选框上没有设置“值”。

答案 2 :(得分:2)

不,它不应该是真/假。

复选框中的值仅在选中时包含在表单中。如果没有选中,则根本没有发送任何值。

发送的值是您使用value属性指定的值。如果未指定值,则使用默认值"on"