我在html页面中有很多复选框。我必须将json数据发送到服务器,其中包含所有选中复选框的id的数组以及这些复选框的标签。 我正在考虑使用带有.each()函数的jquery来检查是否选中了复选框,如果选中它,则将其添加到数组中。 我正在寻找的json文件是这样的
{"checkbox id" : [1, 2, 3], "checkbox label" : ["check1", "check2", "check3"]}
答案 0 :(得分:0)
你可以使用jquery:checked选择器来获取所有选中的复选框..
var checkedCheckBoxes = $("输入:已检查")
答案 1 :(得分:0)
假设这个HTML:
<label for="checkBox">Label</label>
<input id="checkBox" type="checkbox" />
我会建议这种形式的json:
var arr = [];
$('input[type="checkbox"]:checked').each(function() {
var that = $(this);
var id = that.attr('id');
var label = $('label[for="' + id + '"]').text();
var obj = {
id: id,
label: label
}
arr.push(obj);
});
你会想出这个:
arr = [{id:"1",label:"labelOne"},{ ... }];
答案 2 :(得分:0)
如果您正在寻找一种格式化JSON的方法,我会将选中框中的所有信息放在一个数组中,如下所示:
{
"checked_boxes" :
[{"id": "1", "label": "checkbox1"},
{"id": "2", "label": "checkbox2"},
{"id": "3", "label": "checkbox3"]
}
答案 3 :(得分:0)
如果要保留json结构,可以执行以下操作:
var ids = [];
var labels = [];
$('input[type="checkbox"]').each(function () {
if ($(this).is(':checked')) {
var current_id = $(this).attr('id');
ids.push(current_id);
var current_label = $("label[for='" + $(this).attr('id') + "']").text();
labels.push(current_label);
}
});
var checkboxes = {
"checkbox_id": ids,
"checkbox_label": labels
};
var s_checkboxes = JSON.stringify(checkboxes);
请注意您无法在浏览器中创建json文件。一旦数据被发送,您将不得不在服务器端执行此操作。