@Froggie

Как удалить элемент options, если он выбран в другом Select?

Вот решение, которое я хочу получить - https://jsfiddle.net/1zduav7s/
Но это angular, а как добиться того же на чистом JavaScript?
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 1
@hasalex
разработчик
htmL

<select class="myselect" name="select1">
      <option value="1" selected>one</option>
      <option value="2">two</option>  
      <option value="3">three</option>  
      <option value="4">four</option>  
      <option value="5">five</option>  
      </select>
    <select class="myselect" name="select2">
      <option value="2" selected>two</option>  
      <option value="3">three</option>  
      <option value="4">four</option>  
      <option value="5">five</option>  
    </select>
    <select class="myselect" name="select3">
      <option value="1">one</option>  
      <option value="3" selected>three</option>  
      <option value="5">five</option>  
      <option value="6">six</option>  
    </select>


JAVASCRIPT

const check = (selects, event) => {
        const selected = new Set([event.target.value])
        selects.forEach(el => selected.add(el.value));

        selects.forEach(forRemoved => {
            const options = forRemoved.querySelectorAll(`option`)
            options.forEach(option => {
                option.disabled = selected.has(option.value); 
            })
        })
      }
                          
				document.addEventListener("DOMContentLoaded", () => {
          const selects = document.querySelectorAll(".myselect");
          selects.forEach(select => select.addEventListener("change", e => check(selects, e)))
})




В данном примере накидал вам, чтобы элемент выбранный везде дисаблился. Дальше можете расширять функционал как нужно (удалять/восстанавливать айтемы, дисаблить только у всех остальных и пр.)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
28 нояб. 2024, в 14:06
1000 руб./в час
28 нояб. 2024, в 13:31
30000 руб./за проект
28 нояб. 2024, в 13:22
1000 руб./за проект