0

フォームで carmen-rails を使用して、各国の国とサブリージョンを表示します。最初に国を選択すると、サブリージョンのリストも更新され、次にこれらの情報をデータベースに保存して 2​​ 回目に移動します。上記のページに移動して別の国を選択すると、サブリージョンのリストが更新されません!! 次に、ページをリロードすると、それが行われます! これはコーヒースクリプト形式の私のjsファイルです:

$ ->
  $('select#user_detail_attributes_country_code').change (event) ->

     select_wrapper = $('#user_detail_attributes_state_code')

     $('select', select_wrapper).attr('disabled', true)

     country_code = $(this).val()

     url = "/orders/subregion_options?parent_region=#{country_code}"
     select_wrapper.load(url)

注:レール4を使用していますが、レール4は自動的にキャッシングを行い、リストを更新しませんか? またはjqueryの変更方法に問題がありますか?ここで問題が見つかりません。助けてください

私の注文コントローラーはパーシャルをレンダリングするだけです:

class OrdersController < ApplicationController

  def subregion_options
    render partial: 'orders/subregion_select'
  end

end

サブリージョンの部分コードは次のとおりです。

div#order_state_code_wrapper
  - detail ||= params[:detail]
  - parent_region ||= params[:parent_region]
  - country = Carmen::Country.coded(parent_region) unless parent_region.nil?
  - if country.nil?
    %em Please select a country above
  - elsif country.subregions?
    = label_tag :user_detail_attributes_state_code, "State"
    = subregion_select_tag("user[detail_attributes][state_code]", detail.try(:state_code), parent_region)
  - else
    = label_tag :user_detail_attributes_state_code, "State"
    = text_field_tag("user[detail_attributes][state_code]", detail.try(:state_code))

編集

jquery の change メソッド内にalert("foo")を追加しました。国を選択すると、"foo" というアラートが表示されたり、機能しない場合があります。

4

0 に答える 0