1

我想根据用户选择的国家/地区实现县的自动约束选择。
当用户在国家/地区字段中选择美国时,它应该仅在地区选择字段中显示美国的州,如加利福尼亚或纽约等。

国家模式有

  • ID
  • 姓名

模式有

  • ID
  • country_id

现在我像这样展示这些字段

<% resource.build_user_profile if resource.user_profile.nil? %>
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put, :class => 'form-horizontal' }) do |f| %>
  <%= devise_error_messages! %>

<%= f.fields_for :user_profile do |profile_form| %>

 <label class="control-label"><%= profile_form.label :country_id %></label>
 <%= profile_form_select :country, options_for_select(Countryy.all.map{ |g| [g.name, g.id] }) %>

 <label class="control-label"><%= profile_form.label :prefecture_id %></label>
 <%= profile_form_select :prefecture, options_for_select(Prefecture.all.map{ |g| [g.name, g.id] }) %>

<% end %>
4

1 回答 1

1

如果您修改 HTML 以编写自定义选择选项生成器,则可以使用如下所示的一些 JS。

JavaScript:

$(".country_select").change(function() {
  var country_id = $(this).val();
  if(country_id) {
    $(".prefecture_select option[country_id="+country_id+"]").hide();
  } else {
    $(".prefecture_select option").show();
  }
}

如果您不想编写自定义选择助手,那么下一个最简单的方法是创建多个选择并使用 JS 仅显示与所选国家/地区匹配的选择。

于 2013-01-04T02:28:59.473 回答