правильнее действовать в пределе блока чрезе родителей/детей, если нет, то привязываться не к 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>