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

时间:2012-11-02 11:18:27

标签: jquery html checkbox checked

  

可能重复:
  Check if checkbox is checked with jQuery

我对类型复选框的输入如何工作有点困惑。

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

<input type="checkbox" value="1">

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

4 个答案:

答案 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)

checkcheckbox标记的属性,因此您必须检查它是否已设置,没有其他值。