$('table').on('change', 'select', ({ target: t }) => {
const isNone = t.value === 'none';
$(t)
.closest('td')
[isNone ? 'nextAll' : 'next']()
.find('select')
.prop('disabled', isNone)
.val((i, val) => isNone ? 'none' : val);
});
или
document.querySelector('table').addEventListener('change', ({ target: t }) => {
if (t.tagName === 'SELECT') {
const isNone = t.value === 'none';
const { cellIndex: i, parentNode: { children } } = t.closest('td');
[...children].slice(i + 1, isNone ? undefined : i + 2).forEach(n => {
const select = n.querySelector('select');
select.disabled = isNone;
select.value = isNone ? 'none' : select.value;
});
}
});