jQuery select - 无法获取选项文本或值

时间:2012-02-15 17:30:57

标签: jquery json select dynamic options

使用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()带回ID或TEXT总是未定义的。我注意到其他人似乎有同样的问题但似乎无法解决它。

我甚至将change事件添加到了optionsValue对象中,希望在加载DOM之后它会起作用,但这似乎不起作用。

我不想硬编码页面上的选项列表,但看起来我可能不得不这样做。

1 个答案:

答案 0 :(得分:2)

尝试将var optionsValues = '<select>';更改为var optionsValues = '<select id="optionsChaa">';

我认为身份证正在迷失。

编辑 @David M打败了我,这就是答案。