Как я могу заполнить выпадающий список в JQuery

0

Я пытаюсь сделать выпадающий список, когда при выборе одного элемента другой выпадающий список изменит его список

Так что пердеть это то, что я сделал,
Это первое раскрывающееся меню, которое изменит список другого раскрывающегося списка:

<select id="testers_team-${info.problemId}" class="tester_team">
    <optgroup label="Current Value">
         <option><c:out value="${info.team}"></c:out></option>
    </optgroup>
    <optgroup label="Teams">
         <c:forEach var="team" items="${requestScope.testers}">
        <option value="${team.key}">${team.key}</option>
         </c:forEach>
    </optgroup>
</select>

Это второе раскрывающееся меню, которое будет изменено, если выбрано другое раскрывающееся меню:

<select id="testers" class="testers_team-${info.problemId}">
    <optgroup label="Current Assigned Tester">
        <option>I'll think about this later</option>
    </optgroup>
    <optgroup label="Testers">
          <c:forEach var="testers_per_team" items='${test.KwekKwek}'>
               <option>${testers_per_team}</option>
          </c:forEach>
    </optgroup>
</select>

Этот код является Ajax который получает правильное значение и отправляет его обратно, что должно быть repopulating выпадающего списка:

$('.tester_team').each(function(){
             $(this).change(function() {
                 var id = $(this).attr('id');

                  $.post('Analysis',
                     {team: $(this).val()},
                     function(data)
                     {
                        $('.'+id).each(function()
                        {
                            $(this).find('option').remove();
                            $.each(data, function(index, value) {              
                                $('<option>').text(value).appendTo($select);
                            });
                        });

                     },"json"); 
             }); 
         });

Уже сделано:

  1. Отправьте сервлету выбранное значение первого раскрывающегося списка
  2. Обработайте значение, чтобы оно вернуло правильное значение для повторного заполнения второго выпадающего меню
  3. Получить значение в форме JSON
  4. Удален список из всплывающего окна SECOND, когда в раскрывающемся списке FIRST выбрано другое значение

Проблема заключается в самообучении, используется

$.each(data, function(index, value) {              
    $('<option>').text(value).appendTo($select);
});

для повторного заполнения списка вскрытия SECOND, но, похоже, код неправильный. Пожалуйста, помогите мне решить эту проблему.

ПРИМЕЧАНИЕ. Оба выпадающего списка повторяются с помощью foreach поэтому для определения второго раскрывающегося списка используется id первого раскрывающегося списка. И о данных, которые отправляются обратно сервлетом, это не null, я попытался вывести его в alert(); и он есть.

Теги:
jsp
drop-down-menu

1 ответ

0
Лучший ответ

Можете ли вы попробовать это?

$('.'+id).each(function()
  {
    $(this).find('option').remove();
    var optgroup = $("optgroup[label=Testers]", this);
    $.each(data, function(index, value) {              
      $('<option>').text(value).appendTo(optgroup);
    });
  })
  • 0
    $(this).find('option').remove(); удаляет все опции раскрывающегося списка, как я могу удалить second optgroup не разрушая first optgroup
  • 0
    Вам просто нужно использовать селектор атрибутов, который я покажу вам в вашем первом комментарии. или вы можете взять в качестве примера из кода выше :)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню