Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用Jquery Ajax设置约束选择?_Ruby On Rails_Ruby On Rails 3_Jquery - Fatal编程技术网

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

Ruby on rails 如何使用Jquery Ajax设置约束选择?,ruby-on-rails,ruby-on-rails-3,jquery,Ruby On Rails,Ruby On Rails 3,Jquery,我想根据用户选择的国家/地区,实现自动约束的县选择。 当用户在“国家”字段中选择“美国”时,它应仅在“地区选择”字段中显示加利福尼亚、纽约或etcs等美国州 国家/地区型号 身份证 名字 州型号 身份证 国家识别号 郡 现在我用这样的方式展示这些领域 <% resource.build_user_profile if resource.user_profile.nil? %> <%= form_for(resource, :as => resource_name,

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

国家/地区型号

  • 身份证
  • 名字
型号

  • 身份证
  • 国家识别号
现在我用这样的方式展示这些领域

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

资源名称,:url=>注册路径(资源名称),:html=>{:method=>:put,:class=>'form horizontal'})do | f |%>

如果您修改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仅显示与所选国家/地区匹配的选择。

如果您修改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仅显示与所选国家/地区匹配的选择。

谢谢。我应该用你的代码制作JS文件吗?控制器和视图呢?我只知道如果用户按submit键它是如何工作的。但在这里,用户不需要在选择国家后按提交。如何检测用户是否选择了?是的,在DOM准备好并且表单存在于DOM中之后,您需要一个JavaScript文件在某处执行此代码。最糟糕但可能最简单的方法是将代码直接复制到表单后面的ERB文件中。如果我将代码放在表单后面,我是否应该用。。。?就这样?只要复制你的代码和粘贴就可以了???不。我只是对你的标记做一些假设。
.country\u select
应该是映射到国家/地区选择的选择器。同样适用于
.option\u选择
选择器。再次感谢。我很抱歉,我太傻了。如果可能的话,你能给我举个例子说明如何用控制器设置这个,以及视图必须是怎样的吗?谢谢。我应该用你的代码制作JS文件吗?控制器和视图呢?我只知道如果用户按submit键它是如何工作的。但在这里,用户不需要在选择国家后按提交。如何检测用户是否选择了?是的,在DOM准备好并且表单存在于DOM中之后,您需要一个JavaScript文件在某处执行此代码。最糟糕但可能最简单的方法是将代码直接复制到表单后面的ERB文件中。如果我将代码放在表单后面,我是否应该用。。。?就这样?只要复制你的代码和粘贴就可以了???不。我只是对你的标记做一些假设。
.country\u select
应该是映射到国家/地区选择的选择器。同样适用于
.option\u选择
选择器。再次感谢。我很抱歉,我太傻了。如果可能的话,你能给我举个例子,说明如何用控制器来设置它,以及视图必须如何设置吗?