Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.05.2025, 20:42
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 789

Замена option в select
Привет.
<div class="field1 mt-3 col-12">
                <label>Тип отчётности</label>
                <select name="select-type" class="form-select select-type w-100">
                    <option value="staf">опшин1</option>
                    <option value="indicate">опшин2</option>
                </select>
            </div>
            <div class="field1 type-staf mt-3 col-12">
                <label>Название отчётности</label>
                <select name="type_ajax" class="form-select select-type-ajax w-100">
                </select>
            </div>


Второй селект заполняется из ответа запроса при загрузки страницы. Тут всё работает.

При изменении значения первого селекта приходят обновлённые данные для второго. И я снова создаю элементы и вставляю их в селект.

$.ajax({
            ...
            success: function (data) {
                type_ajax.options.length = 0;
                for (var i = 0; i < data.reporting.length; i++) {
                    var opt = document.createElement('option');
                    opt.value = i;
                    opt.innerHTML = data.reporting[i];
                    document.querySelector('.select-type-ajax').appendChild(opt)
                }
                
            }
         
        });


Но теперь у меня во втором селекте всегда первое значение опшина. Никак не победить. Если не очень понятно, то визуально можно глянуть тут, на мобильном разрешении браузера. Или с телефона.
Ответить с цитированием
  #2 (permalink)  
Старый 09.05.2025, 04:39
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,823

Вот этот ваш код на каждое изменение значения любого селекта на странице запрашивает и пересоздает список опций для вашего select[name="type_ajax"]:
var select = document.querySelectorAll('select');

    select.forEach(function (sel) {
        sel.addEventListener('change', function (el) {
            var val = el.target.value;
            getAjax(val);

        });

    });
Ответить с цитированием
  #3 (permalink)  
Старый 09.05.2025, 06:49
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 789

Ну да. И что? Не понял. Так и должно быть. Другие опшины меняют то своё значение. Но спасибо, подумаю в эту сторону.

Последний раз редактировалось ureech, 09.05.2025 в 06:54.
Ответить с цитированием
  #4 (permalink)  
Старый 09.05.2025, 06:55
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 789

То есть нужно исключить этот селект?
Ответить с цитированием
  #5 (permalink)  
Старый 09.05.2025, 07:25
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 789

Большое спасибо за помощь. Указал в условии, при формировании опшинов, нужный 'selected'.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
select - большое количество option kot_k_k (X)HTML/CSS 3 08.09.2017 16:34
Содержимое option по клику на select wwonder Общие вопросы Javascript 5 18.04.2017 14:12
Значение из select option vnmslf jQuery 19 21.07.2016 12:09
Java Script, совместная работа textarea с select option Алекс_ Элементы интерфейса 1 12.05.2015 08:13
Динамические option в select lurii Элементы интерфейса 10 14.01.2011 11:23