Ответ 1
Вы можете использовать входной текст с атрибутом "list", который ссылается на datalist значений.
<input type="text" name="city" list="cityname">
<datalist id="cityname">
<option value="Boston">
<option value="Cambridge">
</datalist>
Это создает свободное поле ввода текста, которое также имеет раскрывающийся список для выбора предопределенных вариантов. Атрибуция, например, и дополнительная информация: https://www.w3.org/wiki/HTML/Elements/datalist