Javascript 如何使用Jquery从复选框中收集JSON对象的值?

Javascript 如何使用Jquery从复选框中收集JSON对象的值?,javascript,jquery,json,Javascript,Jquery,Json,我正在尝试为用户创建一个小型的联系人表,在这里,他们可以选择何时更适合与他们联系。我有7天和3个条件-上午/下午/晚上 我正在尝试收集此类对象,并将其发送到服务器- {"SUNDAY":["MORNING"],"MONDAY":["EVENING","MORNING"]} 我有以下HTML结构: <tr> <td class="table-headline">Morning</td> <td>

我正在尝试为用户创建一个小型的联系人表,在这里,他们可以选择何时更适合与他们联系。我有7天和3个条件-上午/下午/晚上

我正在尝试收集此类对象,并将其发送到服务器-

{"SUNDAY":["MORNING"],"MONDAY":["EVENING","MORNING"]}
我有以下HTML结构:

<tr>
<td class="table-headline">Morning</td>
<td>                                
    <label class="label-check">
        <input id="morning1" name="morning" type="checkbox" value="SUNDAY">
</label>   
</td>
<td>                                
    <label class="label-check">
        <input id="morning2" name="morning" type="checkbox" value="MONDAY">
</label>   
</td>
<td>                                
    <label class="label-check">
        <input id="morning3" name="morning" type="checkbox" value="TUESDAY">
</label>   
</td>
<td>                                
    <label class="label-check">
        <input id="morning4" name="morning" type="checkbox" value="WEDNESDAY">
</label>   
</td>
<td>                                
    <label class="label-check">
        <input id="morning5" name="morning" type="checkbox" value="THURSDAY">
</label>   
</td>
<td>                                
    <label class="label-check">
        <input id="morning6" name="morning" type="checkbox" value="FRIDAY">
</label>   
</td>
<td>                                
    <label class="label-check">
        <input id="morning7" name="morning" type="checkbox" value="SATURDAY">
</label>   
</td>

早晨

对于每种情况,我有三条类似的线。这不是一个问题,要检测是否选中复选框,我不知道在检查后如何在JSON中收集这些数据

这应该可以做到(假设复选框包装在表单元素中):

$('input').on('click',function(){
  // selectors that are checked => $('input:checked').length
  console.log($('input:checked').length)
})
var data=$('form').serializeArray(),
obj={};
对于(变量i=0;i

编辑:我发现您的示例字符串中的名称和值颠倒了。如果这是故意的,而不是打字错误,只需将上述代码中的
名称
属性互换即可。

仅供参考,我已为此创建了输入。其

JS代码如下

$('#btnsubmit').click(function () {

    var obj = [];
    obj.push({
        "MONDAY": GetDetails("MONDAY"),
        "TUESDAY": GetDetails("TUESDAY"),
        "WEDNESDAY": GetDetails("WEDNESDAY"),
        "THURSDAY": GetDetails("THURSDAY"),
        "FRIDAY": GetDetails("FRIDAY"),
        "SATURDAY": GetDetails("SATURDAY"),
        "SUNDAY": GetDetails("SUNDAY"),
    });
$('#output').text(JSON.stringify(obj));
});

function GetDetails(day) {
    var arr = new Array();
    $(':input[value="' + day + '"]').each(function () {
        if (this.checked) {
            arr.push($(this).attr('name'));
        }
    });
        return arr;
}
[{
"MONDAY":["afternoon"],
"TUESDAY":[],
"WEDNESDAY":["morning","afternoon"],
"THURSDAY":[],
"FRIDAY":["morning","afternoon"],
"SATURDAY":[],
"SUNDAY":[]
}]
结果如下

$('#btnsubmit').click(function () {

    var obj = [];
    obj.push({
        "MONDAY": GetDetails("MONDAY"),
        "TUESDAY": GetDetails("TUESDAY"),
        "WEDNESDAY": GetDetails("WEDNESDAY"),
        "THURSDAY": GetDetails("THURSDAY"),
        "FRIDAY": GetDetails("FRIDAY"),
        "SATURDAY": GetDetails("SATURDAY"),
        "SUNDAY": GetDetails("SUNDAY"),
    });
$('#output').text(JSON.stringify(obj));
});

function GetDetails(day) {
    var arr = new Array();
    $(':input[value="' + day + '"]').each(function () {
        if (this.checked) {
            arr.push($(this).attr('name'));
        }
    });
        return arr;
}
[{
"MONDAY":["afternoon"],
"TUESDAY":[],
"WEDNESDAY":["morning","afternoon"],
"THURSDAY":[],
"FRIDAY":["morning","afternoon"],
"SATURDAY":[],
"SUNDAY":[]
}]
. 它要么是JavaScript对象,要么是JSON格式的字符串。到目前为止你试过什么?