Javascript 尝试让Jquery在Rails和Active Admin中使用动态选择表单
我正在尝试根据另一个选择框更新选择框 在我的活动管理资源中,我仅为一些测试数据执行了以下操作:Javascript 尝试让Jquery在Rails和Active Admin中使用动态选择表单,javascript,jquery,ruby-on-rails,activeadmin,Javascript,Jquery,Ruby On Rails,Activeadmin,我正在尝试根据另一个选择框更新选择框 在我的活动管理资源中,我仅为一些测试数据执行了以下操作: controller do def getcols list = new Hash list = {"OPTION1" => "OPTION1", "OPTION2" => "OPTION2"} list.to_json end end 在active_admin.js中,我有以下内容 $('#worksheet_type').change(functi
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));
});
}
$('#工作表_类型')。更改(函数(){
$.post(“/admin/getmanifestcols/”,{ws_type:$(this.val()}),函数(数据){
PopulatedDropdown($(“#列_0”),数据);
});
});
函数填充下拉列表(选择,数据){
select.html(“”);
警报(“hi”);
$.each(数据、函数(id、选项){
select.append($('').val(option.value).html(option.name));
});
}
上面的工作原理是,当我的主选择框被更改时,jquery被调用,我甚至可以调用“hi”的警报框。但是,它不会用我的测试选项1和选项2数据替换选择框的内容
我想我传递的JSON是错误的或者其他什么,或者它没有被读取
我遗漏了什么?在我看来,您似乎没有正确地在地图上迭代 那么:
$.each(data, function(value, name) {
select.append($('<option></option>').val(value).html(name));
});
$。每个(数据、函数(值、名称){
select.append($('').val(value.html(name));
});
?让controller渲染部分,然后PopulatedDropdown将附加返回html会更快,而不是让JS和浏览器内存完成所有工作。还可以使用PopulatedDropdown函数中的console.log(数据)读取浏览器控制台中返回的javascript对象。