@turbomen24

Как сделать поиск внутри списка select на JS?

Мне необходимо сделать поиск внутри списка select, у меня есть скрипт, который это делает, но если я уберу <form> и сделаю это внутри <div>, поиск не работает. Почему так происходит?

<form id="f">
<select name="name_ob" size="6">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="text" name="opt">
</form>
<script>
var f = document.getElementById["f"],
    s = f["name_ob"], o = s.querySelectorAll("option"),
    inp = f["opt"],
    reg;
inp.oninput = function() {
    reg = new RegExp(this.value, "ig"); 
    s.options.length = 0;
    for (var i=0; i<o.length; i++)  {
       reg.test(o[i].text) && s.options.add(o[i]);
       reg.lastIndex = 0;
    }
};
</script>


Например, если я заместо <form id="f"> напишу <div id="f">, поиск не выполняется. Пробовал разными способами менять js код, и не смог найти решение.
  • Вопрос задан
  • 2412 просмотров
Решения вопроса 2
@randm18
s = f["name_ob"]
Поменяй на s = document.getElementById('name_ob')
и select у дай такой ид.
Обращение идет как к форме, поэтому убрав форму теряешь переменную

inp = f["opt"],
ну и здесь аналогично
Ответ написан
Tim-A-2020
@Tim-A-2020
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы