Dodanie opcji do selecta na stronie .jsp - jQuery

Dodanie opcji do selecta na stronie .jsp - jQuery
SW
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 7 lat
  • Postów:30
0

Witam,

z góry przepraszam jeśli będzie to pytanie nie na miejscu, albo będzie to totalna abstrakcja, ale z jQuery nie miałem jeszcze styczności.

Otóż, pisze aplikacje webową w Javie EE i na stronie .jsp potrzebuje użyć zależnych dropdown list.
Znalazłem odpowiedni skrypt, przerobiłem go na swoje potrzeby, jednak mam problem z dodaniem opcji do selecta.

Moja strona .jsp wygląda tak:

Kopiuj
 <select id="second" class="form-control" role="listbox" style="display:none">
                <option value="0" selected="selected">Wybierz podkategorie</option>
                <c:forEach var="subcategories" items="${subcategories}">
                    <option>${subcategories}</option>
                </c:forEach>
 </select>

a w skrypcie mam następującą metodę:

Kopiuj
var subcategories = [$('#subcategories')];
 var generateOptions = function(element) {
        var options = '';
        for(var i = 1; i <= subcategories.length; i++) {
            options += '<option value="'+i+'">'subcategories[i]'</option>';
        }
        element.append(options);
    };

Kombinowałem coś po swojemu wiec proszę o wyrozumiałość :D

edytowany 1x, ostatnio: Swierzak_
DE
  • Rejestracja:ponad 9 lat
  • Ostatnio:11 miesięcy
  • Postów:1788
1

A gdzie tu pytanie?

Moja szklana kula podpowiada mi, że chcesz zrobić coś takiego:

DEMO

Kopiuj
const category = document.querySelector('#category');
const subcategory = document.querySelector('#subcategory');
const suboptions = subcategory.querySelectorAll('option:not(:first-child)');
const defaultSuboption = subcategory.querySelector('option:first-child');

category.addEventListener('change', e => {
  suboptions.forEach(option => {
  	const { categoryId } = option.dataset;
   	option.style.display = categoryId === e.target.value ? 'block' : 'none';
  });
  
  defaultSuboption.selected = true;
})
edytowany 2x, ostatnio: Desu
SW
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 7 lat
  • Postów:30
0

Faktycznie, wybaczcie, zapomniałem doprecyzować.
Ogólnie chciałbym do skryptu przekazać tablice, listę opcji pobraną ze strony .jsp - ${subcategories} .

I w metodzie generateOptions() przeiterować po liście i dodać jej każdy element do drugiej dropdown listy.

I pytanie brzmi jak powinna wyglądać ta metoda, aby spełniła te założenia ?

Nie chciałbym już zmieniać skryptu bo wczoraj męczyłem się z nim bardzo długo żeby go dostosować do swoich potrzeb.
Bedę wdzięczy za wszelkie porady :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.