嗨,我有不同名称的复选框:
名称 - 小时,值 - 天。例如:value="1"表示星期一,name="0609"表示上午 06 点至上午 9 点。
<input type="checkbox" value="1" name="0609">
<input type="checkbox" value="2" name="0609">
...
<input type="checkbox" value="7" name="0609">
<input type="checkbox" value="1" name="0912">
<input type="checkbox" value="2" name="0912">
...
<input type="checkbox" value="7" name="0912">
我需要获取所有已检查和未检查的输入,并按名称合并到数组中,例如:如果检查除星期一之外的所有日期
'0609' => 0, 1, 1, 1, 1, 1, 1
我该如何解决这个问题?
我试图使用 .map 但我得到了未分组的值...
var valuess = $('input:checked').map(function() {
return this.value;
}).get();
console.log(valuess);
更新:
var obj = {}; // Define object
// Loop over all checkboxes
$('input[type=checkbox]').each(function() {
var name = $(this).attr('name'); // Get name of this checkbox
var sThisVal = (this.checked ? "1" : "0");
if (obj[name]) {
obj[name].push(sThisVal); // Push value
} else {
obj[name] = [sThisVal]; // Create array and push value
}
});
console.log(obj);
最佳答案
检查一下:
var obj = {}; // Define object
// Loop over all checkboxes
$(':checkbox').each(function() {
var name = $(this).attr('name'); // Get name of this checkbox
if (obj[name]) {
obj[name].push($(this).val()); // Push value
} else {
obj[name] = [$(this).val()]; // Create array and push value
}
});
console.log(obj);
关于javascript - Jquery获取所有复选框并按复选框名称分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31071308/