我有“选择国家”和“选择城市”表格,如果“选择国家”没有价值,它会显示“请选择国家”文本,当我选择国家时,它会从中加载“选择城市”。它工作正常。但是,当我尝试使用 select2 jquery 时,select2 仅适用于“选择国家”表单,但不适用于“选择城市”表单。
这是我的代码:在 _form.html.erb
<div class="field">
<%= f.label :country %><br>
<%= f.country_select :country, priority: %w{TH SG MY}, prompt: "Please select a country" %>
</div>
<div class="field">
<%= f.label :city %><br />
<%= render partial: 'subregion_select', locals: {parent_region: f.object.country} %>
</div>
在 _subregion_select.html.erb
<div id="subregion-field">
<% parent_region ||= params[:parent_region] %>
<% country = Carmen::Country.coded(parent_region) %>
<% if country.nil? %>
<em>Please select a country above</em>
<% elsif country.subregions? %>
<%= subregion_select(:address, :city, parent_region) %>
<% else %>
<%= text_field(:address, :city) %>
<% end %>
</div>
在addresses.js.coffee
$ ->
$("select#address_country, select#address_city").select2
width: '250px'
$('select#address_country').change (event) ->
select_wrapper = $('#subregion-field')
$('select', select_wrapper).attr('disabled', true)
country = $(this).val()
url = "/addresses/subregion_options?parent_region=#{country}"
select_wrapper.load(url)
$('select#locals').change (event) ->
$(@).closest('form').submit()
非常感谢您的回答。