国家/省/省

时间:2016-02-10 14:55:58

标签: javascript jquery ruby-on-rails

我正在尝试实施一个选项菜单,允许用户选择国家/省/州。我正在使用包含所有国家和大多数省/州的数组的帮助方法。我在表单中使用辅助方法,选项选项可以预先填充下拉菜单。代码如下。

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

 <%= f.label :State_or_Province %>
 <%= f.select :states, options_for_select(states, "Ontario") %>

方法countrystates在帮助文件中定义。两者的代码如下所示。

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

这工作得非常好。但是,我希望州/省的下拉菜单更具活力。我想要API,当用户点击“加拿大”时,加拿大各省出现,同样当用户点击“美国”时,美国各州出现。

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

<% 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语句不正确。方法canadian_provincesCanada都是数组。我想写一下,“如果从该阵列中选择加拿大然后显示加拿大省”。我想和美国做同样的事情。我知道如果我保存数据,那么我可以使用方法进行比较。但是,在保存数据之前,我不确定如何在表单中执行此操作。我很确定你必须在客户端这样做,只是不确定正确的工具是如何或什么。一如既往,任何帮助将不胜感激!谢谢!

0 个答案:

没有答案