为什么我的复选框返回错误的状态

Why does my checkbox return the wrong state?

本文关键字:状态 错误 返回 我的 复选框 为什么      更新时间:2023-09-26

我真的很困惑。我有以下表单中的html:

<input class="check-box" 
  id="Data__Correct" 
  name="Data.Correct" 
  type="checkbox" value="Data.Correct" />

这会在网页上创建以下内容

 <input class="check-box" 
      id="Data__Correct" 
      name="Data.Correct" 
      type="checkbox" value="False" />

当我在复选框中打勾,提交表格,并用fiddler检查时,我看到它正在发送:

Data.Correct    False

我想应该是相反的方式。发生了什么事?

您误解了复选框的工作原理。如果未选中该复选框,则不会向后端传递任何值。如果复选框已选中,则value属性中的值将传递给后端。在您的情况下,您将值设置为False,因此您得到的字符串False不会与布尔值false混淆。

如果您使用value='False'的目的是在加载时设置复选框的状态,那么您需要这样做:

<input type="checkbox" ... checked/>

或者checked="checked"也应该起作用。如果存在checked,则选中该框,否则不选中该框。