在我的Rails应用程序中,我有一个使用 country_select gem的国家选择选项下拉列表,在国家/地区选择下拉列表旁边有另一个下拉列表以显示" US& #34;比如下面的代码:
国家/地区选择代码下降
<div class="row">
<div class="form-group">
<%= f.label :country,'Country', class:"control-label"%>
<%= f.country_select(:country , {priority_countries: [ "US"]} ,{class: "form-control"}) %>
</div>
</div>
状态选择代码下降
<%= f.label :state,'State', class:"control-label" , style: "color: black;"%>
<%= f.select( :state, options_for_select(us_states), {}, {class: "form-control"}) %>
此处 us_states方法在application_helper.rb文件中定义,如下:
def us_states
[
['Alabama', 'AL'],
['Alaska', 'AK'],
['Arizona', 'AZ'],
...............etc
]
end
此处默认选择的国家/地区为&#34; US&#34;,但如果用户从国家/地区选择下拉列表中选择任何其他国家/地区,则我希望将状态选择下拉到普通文本字段而不是下拉列表。 如果用户选择美国以外的国家/地区,如何将状态选择下拉到文本字段?如果选定的国家/地区是美国,州政府部门必须保持下拉状态?
答案 0 :(得分:4)
我建议最初添加文本字段和状态下拉列表,并根据国家/地区值进行切换。
<%= f.label :state,'State', class:"control-label" , style: "color: black;"%>
<%= f.select( :state, options_for_select(us_states), {}, {class: "form-control"}) %>
<%= f.text_field :state,'', class: "form-control",:style=>"display:none"%>
现在在jquery中添加切换逻辑
<script type='text/javascript'>
$("#country_drop_down_id").change(function(){
if($(this).val()=='US'){
$('#state_drop_down_id').show();
$('#state_text_field_id').hide();
}else{
$('#state_drop_down_id').hide();
$('#state_text_field_id').show();
}
});
</script>
替换
country_drop_down_id , state_drop_down_id , state_text_field_id
使用相应的ID选择器。