正确的方式知道是否选中了复选框

Hom*_*ith 2 html checkbox jquery checked

可能重复:
检查是否使用jQuery选中了复选框

关于类型复选框的输入如何工作,我有点困惑.

如果我在复选框上设置一个值,比如1,我看到无论是否选中复选框,我提交表单时获得的值为1.

<input type="checkbox" value="1">
Run Code Online (Sandbox Code Playgroud)

那么,查看是否选中复选框的正确方法是使用checkedfrom jQuery?或者如何正确完成?

Cᴏʀ*_*ᴏʀʏ 6

如果未选中复选框值,则不应提交复选框值.

如果你想用jQuery检查,我会一直使用:

var isChecked = $('#checkbox').prop('checked');
Run Code Online (Sandbox Code Playgroud)

要么

var isChecked = $('#checkbox').is(':checked');
Run Code Online (Sandbox Code Playgroud)

使用JavaScript,您必须了解属性属性之间的区别.checked既是属性又是属性.但是,当复选框的属性发生更改时(在某些浏览器中),检查的属性并不总是更新.将该属性视为DOM解析的HTML标记中的值.该属性是DOM中checkbox 元素的实际成员,它始终根据是在UI中选中还是取消选中该框来更改.checked checked

如果你想尝试一个不需要JavaScript的万无一失的方法,你可以尝试"MVC"的方式,通过渲染一个隐藏的输入和一个具有相同名称的复选框,每个都有适当的"检查"状态值:

<input type="hidden" name="mybox" value="false" />
<input type="checkbox" name="mybox" value="true" />
Run Code Online (Sandbox Code Playgroud)

提交表单时,如果mybox在请求中找不到值为"true"的值,则不会选中该复选框.更多关于这一点.