我在我的表单中使用 carmen-rails 来显示每个国家的国家和子区域,当我第一次选择一个国家时它也会更新子区域列表,然后当我将这些信息保存在数据库中并第二次去到上面的页面并选择另一个不更新子区域列表的国家!那么如果重新加载页面就可以了!这是我的咖啡脚本格式的 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)
注意:我使用的是rails 4,rails 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" 有时不起作用!