如何使用Jquery Ajax设置约束选择?

时间:2013-01-04 02:12:31

标签: ruby-on-rails ruby-on-rails-3 jquery

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

国家模型有

  • 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 %>

1 个答案:

答案 0 :(得分: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仅显示与所选国家/地区匹配的选项。