Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 20.11.2020
Сообщений: 11

Выпадающий список при вводе в input

26.05.2022, 07:42. Показов 3927. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, ребят, помогите, пожалуйста, со скриптом! Нужно, чтобы при в вводе в поле input города ниже появлялся выпадающий список с районами этого города.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.05.2022, 07:42
Ответы с готовыми решениями:

Выпадающий список при вводе
Добрый день. Дело в том, что я даже не знаю как гуглить то, что мне нужно. Хочу реализовать такое: Есть поле, вводишь допустим букву М и...

Создание функции, которая выводит в алфавитном порядке выпадающий список-подсказок стран при вводе первой буквы
Написал код, который из массива стран, выводит в алфавитном порядке выпадающий из инпута список-подсказок стран при вводе первой буквы в...

Выпадающий список при вводе текста пользователем в форму
Всем привет! Сделал скрипт, который ищет значения из БД. Скрипт написан на php. хочу сделать такую штуку, чтобы когда пользователь...

7
250 / 184 / 58
Регистрация: 12.03.2021
Сообщений: 1,043
26.05.2022, 10:20
Цитата Сообщение от lino44ka Посмотреть сообщение
выпадающий список с районами
подробнее. откуда этот список берется? какой длины список должен выводиться? представьте, что есть улица на которой 1000+ домов. ввели название улицы, в списке должно быть 1000+ пунктов или он должен быть сокращен или ограничен, но со скроллом?
0
0 / 0 / 0
Регистрация: 20.11.2020
Сообщений: 11
26.05.2022, 10:27  [ТС]
список появляется после того, как мы выбрали город, в списке всего 10 записей. есть такой код, но он не работает:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//формирования выпадающего списка
 function setSelect(city, select, checkSelect) {
    select = document.getElementsByTagName("select");
    for (let elem of select) {
        checkSelect = elem.id;
        break;
    }
    if (checkSelect == "distCity") return false;
    city.insertAdjacentHTML('afterend', `<select name="distCity" id="distCity">
            <option value="0">Выберите район:</option>
            <option value="1">Центральный</option>
            <option value="2">Железнодорожный</option>
            <option value="3">Заельцовский</option>
            <option value="4">Калининский</option>
            <option value="5">Дзержинский</option>
            <option value="6">Октябрьский</option>
            <option value="7">Ленинский</option>
            <option value="8">Кировский</option>
            <option value="9">Первомайский</option>
            <option value="10">Советский</option>
        </select>`);
    document.querySelector("#distCity").style.cssText = `margin-left: 140px;
    height: 32px;
    padding: 5px 5px;
    border: 1px solid #b2b7c8;
    color: #333;`;
}
0
Философ-разговорник
 Аватар для Padonak
1066 / 391 / 120
Регистрация: 20.02.2016
Сообщений: 884
Записей в блоге: 1
26.05.2022, 17:30
Лучший ответ Сообщение было отмечено lino44ka как решение

Решение

Попробуйте так:

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>Город</title>
    <style>
    body{text-align: center;}
    div{padding: 10px;}
    #city{text-align: center;}
    #distCity{margin-left: 140px; height: 32px; padding: 5px 5px; border: 1px solid #b2b7c8; color: #333;}
    #tip span{cursor: pointer; font-weight: bold; color: crimson}
    </style>
   <script>
   const towns = [
   ['Москва', 'Мажоровка, Нищебродовка, Малая лимита'],
   ['Васюки', 'Нью-Васюки, Алкотище, Малый бомж, Слобода четырёх коней'],
   ['Бредянск', 'Старый делирий, Абстинентные домики, Новый делирий, Маргиналовка']
   ];
   
   function elem(xz){
   return document.querySelector(xz);
   }
   
   function buildSel(n){
   let distr = towns[n][1].split(','),
       output = '<select name="distCity" id="distCity">',
       mysel = elem('#distCity');
       distr.forEach( (el, i) => {output += `<option value="${i}">${el.trim()}</option>`;} );
       output += '</select>';
       if(mysel?.length) elem('#res').removeChild(mysel);
     elem('#res').innerHTML += output;
     elem('#tip').innerHTML = `<b>${towns[n][0]}</b>`;
     elem('#city').value = '';
   }
   
   onload = function(){
   elem('#city').addEventListener('keyup', function(){
   let str = this.value.toLowerCase(),
       tip = elem('#tip');
   if(!str) return;
   for(let k of towns){
    if(k[0].toLowerCase().indexOf(str) != -1){
     tip.innerHTML = `Ваш город - ${k[0]}? <span data-districts="${k[1]}" onclick="buildSel(${towns.indexOf(k)})">выбрать</span>`;
     break;
    }
   else{
     tip.innerHTML = 'Нам неизвестен ваш город';
    }
   }
   });
   
   elem('#city').focus();
   
   }
   </script>
  </head>
  <body>    
    <div><input type="text" id="city" /></div>
    <div id="res">
    <div id="tip"></div>
    </div>
  </body>
</html>
3
0 / 0 / 0
Регистрация: 20.11.2020
Сообщений: 11
28.05.2022, 09:45  [ТС]
Padonak, спасибо большое, действительно помогло, только поле input после выбора города опустевает. а так - отлично!
0
Философ-разговорник
 Аватар для Padonak
1066 / 391 / 120
Регистрация: 20.02.2016
Сообщений: 884
Записей в блоге: 1
28.05.2022, 10:24
Цитата Сообщение от lino44ka Посмотреть сообщение
опустевает
специально так сделал, но можете отключить, если закомментируете или уберёте строку 33
0
0 / 0 / 0
Регистрация: 20.11.2020
Сообщений: 11
28.05.2022, 14:16  [ТС]
действительно получилось) а есть возможность, чтобы выпадающий список появлялся сразу после ввода текста, то есть без кнопки "выбрать"?
0
Философ-разговорник
 Аватар для Padonak
1066 / 391 / 120
Регистрация: 20.02.2016
Сообщений: 884
Записей в блоге: 1
28.05.2022, 15:13
Цитата Сообщение от lino44ka Посмотреть сообщение
а есть возможность
Думаю, вы вполне могли бы самостоятельно это сделать. Попробуйте заменить строку 43 на:

JavaScript
1
buildSel(towns.indexOf(k));
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.05.2022, 15:13
Помогаю со студенческими работами здесь

Как сделать выпадающий список подсказок при вводе в поле поиска
Добрый вечер! Наткнулся еще на одно задание. Видел когда-то на сайте интересную реализацию поиска. Но не знаю, как его сделать. Как сделать...

Выпадающий список для элемента input
Доброго времени суток, у меня есть элемент input. Мне нужно сделать так, чтобы при изменении текста выпадал соответствующий список...

Выпадающий список в ячейках столбца с поиском значений при вводе символов
Добрый день, уважаемые программисты! Появилась необходимость создать выпадающий список в ячейках (в столбце). Нужно чтобы при наведении...

input выпадающий список из бд
Как реализовать выпадающий список input с данными из бд mysql?

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru