Если чекбокс отмечен, - отправляются 2 значения, и из чекбокса и из хиддена.
Мне предложили вроде рабочее решение, выглядит так:
var details = zakaz.detail;
for (var i = 0; i < details.length; i++) {
details[i].addEventListener('change', function () {
var td = closest(this, function (el) {
return el.tagName.toLowerCase() == 'td';
});
var material = td.nextElementSibling.querySelector('[name=material]');
material.disabled = !this.checked;
}, false);
}
function closest(el, fn) {
while (el) {
if (fn(el)) return el;
el = el.parentNode;
}
}
Если отключается чекбокс, отключается и material. вроде все хорошо, все работает (чекбокс - не передается, материал - тоже не передается). Но сразу не подумал.
Обработчику же должен передаваться массив из detail-ов, detailmod-ов, material-ов.
Поэтому пришлось к левому и правому рукавам добавить еще input type="hidden" name="detailmod" value="0".
Как надо дописать приведенный JS, чтобы он еще и detailmod не передавал?