1

我有“选择国家”和“选择城市”表格,如果“选择国家”没有价值,它会显示“请选择国家”文本,当我选择国家时,它会从中加载“选择城市”。它工作正常。但是,当我尝试使用 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()

非常感谢您的回答。

4

0 回答 0