Javascript 国家/省/州的下拉菜单

Javascript 国家/省/州的下拉菜单,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我试图实现一个选项选择菜单,允许用户选择国家和省/州。我使用的助手方法包含所有国家和大多数省/州的数组。我在表单中使用带有选项select的helper方法来预填充下拉菜单。代码如下所示 <%= f.label :Country %> <%= f.select :country, options_for_select(country, "Canada")%> <%= f.label :State_or_Province %> <%= f.sel

我试图实现一个选项选择菜单,允许用户选择国家和省/州。我使用的助手方法包含所有国家和大多数省/州的数组。我在表单中使用带有选项select的helper方法来预填充下拉菜单。代码如下所示

 <%= f.label :Country %>
 <%= f.select :country, options_for_select(country, "Canada")%>

 <%= f.label :State_or_Province %>
 <%= f.select :states, options_for_select(states, "Ontario") %>
module StatesHelper
  def states
  states_array = %w{
      Alabama               
      Alaska
      Arizona
      Arkansas
      California
      Colorado
      Connecticut
      Delaware
      .....
 }
    states_array.sort_by{ |e| e.downcase }
  end
end

module CountriesHelper
  def country
    country_array = [
      "Afghanistan",
      "Aland Islands",
      "Albania",
      "Algeria",
      "American Samoa",
      "Andorra",
      "Angola",
       ....
]
  country_array.sort_by{ |e| e.downcase }
  end
end
<% if f.select :country, options_for_select(country, "Canada") %>
 <%= f.label :State_or_Province %>
 <%= f.select :states, options_for_select(canadian_provinces, "Ontario") %>
 <% end %>
这很好用。然而,我希望州/省的下拉列表更具活力。我想要API,这样当用户点击“加拿大”时,加拿大的省份就会出现,同样,当用户点击“美国”时,美国的州也会出现

我只在美国各州和加拿大各省制作了两个助手文件。在记分板表格中,我尝试了if/else语句。代码如下所示

 <%= f.label :Country %>
 <%= f.select :country, options_for_select(country, "Canada")%>

 <%= f.label :State_or_Province %>
 <%= f.select :states, options_for_select(states, "Ontario") %>
module StatesHelper
  def states
  states_array = %w{
      Alabama               
      Alaska
      Arizona
      Arkansas
      California
      Colorado
      Connecticut
      Delaware
      .....
 }
    states_array.sort_by{ |e| e.downcase }
  end
end

module CountriesHelper
  def country
    country_array = [
      "Afghanistan",
      "Aland Islands",
      "Albania",
      "Algeria",
      "American Samoa",
      "Andorra",
      "Angola",
       ....
]
  country_array.sort_by{ |e| e.downcase }
  end
end
<% if f.select :country, options_for_select(country, "Canada") %>
 <%= f.label :State_or_Province %>
 <%= f.select :states, options_for_select(canadian_provinces, "Ontario") %>
 <% end %>


if和else语句不正确。方法
加拿大\ u省
加拿大
都是数组。我想写下,“如果从该数组中选择了加拿大,则显示加拿大省份”。我想对美国做同样的事情。我知道如果我保存数据,那么我可以使用方法进行比较。但是,我不知道在保存数据之前如何在表单中执行此操作。我很确定你必须在客户端做这件事,只是不确定如何或什么是正确的工具。一如既往,我们将非常感谢您的帮助!!谢谢

也许一个更简单的选择是请求一个邮政编码,然后使用Ziptastic的API来填充其余部分。我使用的是rails,Ziptastic gem没有得到积极维护。它的开发状态是不活跃的哦,糟糕透了。很高兴知道,谢谢你的提醒。