Показать сообщение отдельно
  #8 (permalink)  
Старый 12.09.2021, 21:02
Кандидат Javascript-наук
Отправить личное сообщение для od0201 Посмотреть профиль Найти все сообщения от od0201
 
Регистрация: 07.05.2020
Сообщений: 108

правильнее действовать в пределе блока чрезе родителей/детей, если нет, то привязываться не к name, а к id (или class)
<input type="text" id="price" value="" />
document.querySelector('select#price')
Также будет правильнее данные сразу задать в HTML, как указал рони, чтоб потом не "дублировать"
<option value="20">Красный</option>
<body>
  <div>
    <input type="text" name="price" value="" />
    <select name="colour" required>
      <option hidden value="">Выберите цвет</option>
      <option value="20">Красный</option>
      <option value="70">Бирюзовый</option>
      <option value="40">Фиолетовый</option>
    </select>
  </div>
  <div>
    <input type="text" name="price" value="" />
    <select name="colour" required>
      <option hidden value="">Выберите цвет</option>
      <option value="20">Красный</option>
      <option value="70">Бирюзовый</option>
      <option value="40">Фиолетовый</option>
    </select>
  </div>

</body>
<script>
  selects=document.querySelectorAll('select')
  selects.forEach(el => el.addEventListener('change', 
    e=>e.target.parentElement.querySelector('input').value=e.target.value)
  );
</script>
Ответить с цитированием