0

我正在尝试根据另一个更新选择框..

在我的活动管理资源中,我仅针对一些测试数据执行了以下操作:

controller do

  def getcols
    list = new Hash
    list = {"OPTION1" => "OPTION1", "OPTION2" => "OPTION2"}
    list.to_json
  end
end

在 active_admin.js 我有以下

$('#worksheet_type').change(function() {

  $.post("/admin/getmanifestcols/", { ws_type: $(this).val() }, function(data) {
            populateDropdown($("#column_0"), data);
        });
});

function populateDropdown(select, data) {
 select.html('');
    alert('hi');
    $.each(data, function(id, option) {
       select.append($('<option></option>').val(option.value).html(option.name));
    });       
 }

从某种意义上说,当我的主选择框被更改时,上面的工作会调用 jquery,我什至会调用“hi”的警报框。但是,它不会用我的测试 OPTION1 和 OPTION2 数据替换选择框的内容。

我想我传递了错误的 JSON 或其他东西,或者它没有被读取。

我错过了什么?

4

1 回答 1

0

在我看来,好像您没有正确地遍历地图。

关于什么:

$.each(data, function(value, name) {
   select.append($('<option></option>').val(value).html(name));
});

?

于 2012-08-05T15:20:34.333 回答