由于复选框是布尔值,因此从技术上讲,您无需执行任何操作即可获得所需的数据。既然您知道表单中包含哪些复选框,为什么不让表单仅提交选中的复选框,然后将其与可用复选框列表进行比较以了解哪些复选框已关闭?
编辑
我想我明白混乱在哪里。
有两种类型的布尔字段非常常见——一种是 True 或 False,另一种可以是 True、False或 Null。这是一个重要的区别。
对于第一种类型,使用复选框是完美的,因为通过收集所有“真”(或“开”)值,您也会自动收集假值。但是,使用第二个选项,使用复选框可能会有点混乱,您可能应该使用 a<select>
而不是复选框。
无论如何,如果您决定使用复选框,那么很容易查看复选框是否选中或不使用.checked
. 这是一个 jsfiddle记录每个复选框 id 的日志,并告诉控制台它是否被选中。我使用了需要 chrome 的 console.log(),但显然你可以用你想要的任何东西(警报或函数或其他什么)替换它。
$('button').on('click', function() {
var chbx = $('input[type=checkbox]');
$.each(chbx, function( index, value ) {
console.log(value.id+':'+value.checked);
});
});
如果您想为复选框添加值,您可以将自定义属性添加到输入标签 <input type='checkbox' myattr='whateva' >
并使用 jQuery 轻松访问它们(尽管这在 IE8 或更早版本上不起作用)。