【发布时间】:2011-11-12 05:05:41
【问题描述】:
我如何modify this example 才能从未选中的复选框中获取值?
我希望所有复选框都有一个值,如果尚未选中,我希望将其值设为false。
<input type="checkbox" name="Check01" value="true" />
<input type="checkbox" name="Check02" value="true" checked="checked" />
默认行为
$("form").serializeArray();
// [Check02 = true]
预期行为
$("form").serializeArray();
// [Check01 = false, Check02 = true]
【问题讨论】:
-
这是一个糟糕的方法。您应该在服务器端收集所有可用值(并最终使用它来自动生成复选框)并在表单提交时将其与提交的选中值相交以获得未选中值。
-
@BalusC 如果复选框用作开关而不是集合怎么办?然后需要一个真/假值,除非您想在服务器端对提交的值进行大量检查。
-
@mwieczorek: 默认使用
false? -
是的,但在严格类型的语言中(或 PHP 中的严格模式,应该 always 开启),POST 数组/对象不会包含未选中的复选框,如果引用会抛出异常。这只是另一个
if或三元语句来检查键是否存在于数组或对象中。
标签: javascript jquery forms