gpt4 book ai didi

jquery - 动态更新 options_for_select

转载 作者:行者123 更新时间:2023-12-01 08:42:57 24 4
gpt4 key购买 nike

我想根据第一个选择选项中选择的内容填充第二个选择选项。我知道如何使用传统的 jquery 和 html 来做到这一点。但想知道我是否可以更新options_for_select

如您所见,我在第一个选项中有一个辅助函数city_for_select。我也想对第二个使用同样的方法。我将不胜感激任何帮助。比你。

<div class="col-md-4">
<%= f.label t('city'), class: "form-control-label" %><br>
<%= f.select :city, options_for_select(city_for_select), {}, class: "form-control", id: "city" %>
</div>
<div class="col-md-4">
<%= f.label t('area'), class: "form-control-label" %><br>
<%= f.select :area, options_for_select(["Plz select"]), {}, class: "form-control", id: "area" %>
</div>

最佳答案

这是另一种做事方法。添加 Controller 功能和相关路由后,我使用 jquery 和 json 来调用该函数并加载到选择选项中。无需在此处渲染部分内容。

Controller :请注意,您必须以 json 格式返回数据

def area_for_city
city = params[:city]
if city == "city1"
@areas = ["area1", "area2"]
elsif city == "city2"
@areas = ["area3", "area4"]
elsif city == "city3"
@areas == ["area5", "area6"]
end

render json: {areas: @areas}
end

Javascript:

function populate_area(city_name){
$.get("/get_area_for_city", {city: city_name}, function(data){
var $area = $('#area');
$area.empty();
for (var i = 0; i < data.areas.length; i++) {
$area.append('<option value=' + data.areas[i] + '>' + data.areas[i] + '</option>');
}
}, "json");
}
$(document).ready(function () {
$("#city").change(function () {
var val = $(this).val();
if (val == "city1") {
populate_area("city1");
} else if (val == "city2") {
populate_area("city2");
} else if (val == "city3") {
populate_area("city3");
}
});
});

问题中已给出 HTML。

关于jquery - 动态更新 options_for_select,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45282533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com