jQuery select - не может получить текст опции или значение - PullRequest
0 голосов
/ 15 февраля 2012

Используя jquery 1.7.1, я использую json для заполнения выпадающего списка.Код работает просто замечательно и хранится в функции, но вызывается document.ready().Я надеюсь, что кто-то найдет это полезным, НО:

proxy.invoke("fetchCHAA", {},
        function(result) {

            if (result == null) {
                alert("Possible error in fetching list of CHAAs");
                return;
            }
            else {

                var optionsValues = '<select>';
                optionsValues += '<option value=""></option>';
                $.each(result, function() {
                    optionsValues += '<option value="' + this.chaa_id + '">' + this.chaa_name + '</option>';
                });
                optionsValues += '</select>';
                var options = $('#optionsChaa');

                options.replaceWith(optionsValues);


            }


        }, onPageError);

Как я уже сказал, проблема заключается в событии .change или даже попытке получить значение выбранного элемента.Например, мы знаем, что

var id = $("#optionsChaa").val();
// should bring back the chaa_id

Или:

var text = $("#optionsChaa").text();
// should bring back the chaa name

Проблема в том, что возвращение идентификатора или текста через .val() всегда неопределено.Я заметил, что другие, похоже, имеют ту же проблему, но, похоже, не могут ее решить.

Я даже добавил событие change в объект optionsValue, надеясь, что оно будет работать после загрузки DOM, но это не похожеработать также.

Я не хочу жестко кодировать список параметров на странице, но, похоже, мне придется.

1 Ответ

2 голосов
/ 15 февраля 2012

Попробуйте изменить var optionsValues = '<select>'; на var optionsValues = '<select id="optionsChaa">';

Идентификатор теряется, я думаю.

edit @ Дэвид М побил меня, вот и ответ.

...