如何对未选中的复选框进行serializeArray?

Bru*_*oLM 17 javascript forms jquery

如何修改此示例以便它可以从未选中的复选框中获取值?

我希望所有复选框都有一个值,如果尚未选中,我希望得到它的值false.

<input type="checkbox" name="Check01" value="true" />
<input type="checkbox" name="Check02" value="true" checked="checked" />
Run Code Online (Sandbox Code Playgroud)

默认行为

$("form").serializeArray();
// [Check02 = true]
Run Code Online (Sandbox Code Playgroud)

预期的行为

$("form").serializeArray();
// [Check01 = false, Check02 = true]
Run Code Online (Sandbox Code Playgroud)

Poi*_*nty 13

这样做可能最简单:

 var serialized = $('input:checkbox').map(function() {
   return { name: this.name, value: this.checked ? this.value : "false" };
 });
Run Code Online (Sandbox Code Playgroud)

如果有其他输入,那么您可以序列化表单,然后找到与上面类似的未选中复选框,并将结果附加到第一个数组.


Sha*_*oli 12

serializeArray忽略未选中的复选框.你可以尝试这样的事情.

工作演示

    var serializedObj = {};
    $("form input:checkbox").each(function(){
        serializedObj[this.name] = this.checked;
    });
Run Code Online (Sandbox Code Playgroud)