Добавление записей в input через checkbox
Подскажите, пожалуйста, как добавить в один input данные с разных checkbox-ов. Имеется два checkbox-а: один добавляет список машин из БД, а другой список цветов из БД.
Нужно, чтобы в input всё записывалось в виде {id_cars_body:[21,22,32],id_colors:[1,4...]}, где числа - это id машин и цветов в базе.
Сейчас код работает только с машинами. Как добавить ещё и цвета в эту конструкцию?
var inputs = Array.prototype.slice.call(document.querySelectorAll('input[class="bodys"]')),
inp = document.querySelector("#spec");
inputs.forEach(function(c) {
c.onclick = function() {
var a = [];
inputs.forEach(function(b) {
b.checked && a.push(b.value)
}
);
inp.value = "{id_cars_body:[" + a + "]}"
}
});
Ответы (1 шт):
Автор решения: Aziz Umarov
→ Ссылка
Думаю как-то так
var spec = {id_cars_body: [], id_cars_color : []};
var bodys = Array.prototype.slice.call(document.querySelectorAll('input[class="bodys"]')),
colors = Array.prototype.slice.call(document.querySelectorAll('input[class="colors"]'))
inp = document.querySelector("#spec");
bodys.forEach(function (c) {
c.onclick = function () {
let a = [];
bodys.forEach(b => b.checked && a.push(b.value));
spec.id_cars_body = a;
inp.value = JSON.stringify(spec);
}
});
colors.forEach(function (c) {
c.onclick = function () {
let a = [];
colors.forEach(b => b.checked && a.push(b.value));
spec.id_cars_color = a;
inp.value = JSON.stringify(spec);
}
});
