javascript - Выберите раскрывающийся список при смене с «другим выбором» - PullRequest
0 голосов
/ 18 июня 2020

my-select является основным, когда его выбирают пользователи, он открывает всплывающее окно (что работает прямо сейчас), но я хочу, чтобы когда я выбираю my-select2, оно также должно изменять значение.

<select id="my-select">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
</select>

<select id="my-select2">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
</select>


document.getElementById('my-select').addEventListener('change', function() {
  console.log('You selected: ', this.value);
});

Ответы [ 2 ]

2 голосов
/ 18 июня 2020

есть очень простой способ сделать это.

В слушателе изменений вы просто вызываете другой select и меняете его выбранный индекс после применения вашего собственного logi c.

Пожалуйста, проверьте код здесь:

document.getElementById('my-select').addEventListener('change', function() {
  console.log('You selected: ', this.value);
  document.getElementById("my-select2").selectedIndex = this.selectedIndex;

});
<select id="my-select">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
</select>

<select id="my-select2">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
</select>
1 голос
/ 18 июня 2020
document.getElementById('my-select').addEventListener('change', function() {
  console.log('You selected: ', this.value);
  selectOptionInMySelect2(this.value)
});

function selectOptionInMySelect2(value) {

  const selectElement = document.getElementById('my-select2');
  const allOptions = selectElement.options;

  for(let i=0; i < allOptions.length; i++) {

    if(allOptions[i].value == value) {
      selectElement.selectedIndex = i;
      break;
    }
  }
}

Включены те же идентификаторы и значения, что и в вашем фрагменте. Рабочий пример здесь

Я не осознавал, что ответ уже был опубликован, пока я не редактировал это. Вау, сообщество!

На всякий случай, последовательность опций не одинакова в обоих вариантах , это сработает. Ура!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...