我对类型复选框的输入如何工作有点困惑。
如果我在复选框上设置一个值,比如1,我看到无论是否选中复选框,我提交表单时得到的值是1.
<input type="checkbox" value="1">
那么,查看是否选中复选框的正确方法是使用jQuery中的checked
?或者如何才能正确完成?
答案 0 :(得分:6)
如果未选中复选框值,则不应提交复选框值。
如果你想查看jQuery,我会一直使用:
var isChecked = $('#checkbox').prop('checked');
或者
var isChecked = $('#checkbox').is(':checked');
使用JavaScript,您必须了解属性和属性之间的区别。 checked
既是属性又是属性。但是,如果复选框的checked
属性发生更改(在某些浏览器中),则不会始终更新属性。将该属性视为DOM解析的HTML标记中的值。 checked
属性是DOM中复选框元素的实际成员,它始终根据是否在UI中选中或取消选中该框来更改。 / p>
如果你想尝试一个不需要JavaScript的万无一失的方法,你可以尝试“MVC”方式,通过渲染一个隐藏的输入和一个具有相同名称的复选框,每个都有适当的“检查”状态值:
<input type="hidden" name="mybox" value="false" />
<input type="checkbox" name="mybox" value="true" />
当您提交表单时,如果您在请求中找不到值为“true”的mybox
值,则不会选中该复选框。关于here的更多信息。
答案 1 :(得分:1)
为了检查是否实际选中了复选框,您必须使用
'boxname.checked==""
因为即使框未选中,该值也将始终存在。
答案 2 :(得分:0)
$('input[type=checkbox]').is(':checked')
如果选中则返回true
,否则返回false
。
在回答您对该问题的评论时,当您需要检查状态时,该值没有太多可以获得。
答案 3 :(得分:0)
check
是checkbox
标记的属性,因此您必须检查它是否已设置,没有其他值。