mrusklon
@mrusklon
Не получается? Яростно гугли!

Как сделать disabled валидацию select'ов таблицы?

https://jsfiddle.net/KLON/xzqv6rc8/1/

есть такая табличка, там будет в каждом td один select , у каждого select есть option value = "none" , рядов будет неизвестно сколько, строчек много тоже будет.

надо при выборе != none делать следующий select не disabled и наоборот , как бы лесенкой включать и выключать все селекты , при выключении надо убирать value

У самого каркаса таблицы мы можем ставить любые классы,id и все что душе угодно )

как такую хитрую систему замутить?
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
$('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;
    });
  }
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы