gpt4 book ai didi

ruby-on-rails - 基于其他选择的 ActiveAdmin 动态 select_tag

转载 作者:数据小太阳 更新时间:2023-10-29 08:08:22 26 4
gpt4 key购买 nike

目前我有一个看起来像这样的表单:

form_tag(manage_titans_admin_collection_path(collection), method: :post) do
label_tag('Race:') +
' ' +
select_tag(:race, options_for_select(Collectible.where(primary_type: 'cpt_golem').order('race asc').uniq.pluck(:race))) +
' ' +
label_tag('Stage:') +
' ' +
select_tag(:stage, options_for_select(1.upto(4))) +
' ' +
label_tag('Level:') +
' ' +
text_field_tag(:level, 1, style: 'width: 100px') +
' ' +
submit_tag('Submit')
end

我想改变它,使 :level 选择是连续数字的 select_tag,它根据选择的 :stage 而改变.例如,如果阶段是 1,我想显示 1-20 级,但如果选择阶段 2,我想显示 20 到 40 级。

感谢您的宝贵时间!

最佳答案

最后,您使用的辅助标签会转换为 html,所以我会使用带有 jquery 的 javascript 函数:
假设您的页面中有:

<select name="stage" id="stage">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>

还有一个:

<select name="level" id="level"></select>

函数应该是这样的:

$(document).ready(function(){
$('#stage').on('change', function() {
var level = $("#level");
var value = this.value;
level.empty();
if (value == 1) {
init = 1;
final = 20;
} else if(value == 2) {
init = 21;
final = 40;
} else if(value == 3) {
init = 41;
final = 60;
} else if (value == 4) {
init = 61;
final = 80;
}
var cont = 0;
for(var i=0; (init+cont)<=final; i++) {
level.append('<option value="'+(init + cont)+'">'+(init + cont)+'</option>')
cont++;
}
});
$('#stage').change();
});

如果您想更改级别,只需更新函数中的数字即可。或添加其他条件。
希望对您有所帮助。

关于ruby-on-rails - 基于其他选择的 ActiveAdmin 动态 select_tag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28095572/

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