加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails select_tag onchange ajax请求

发布时间:2020-12-16 19:27:50 所属栏目:百科 来源:网络整理
导读:我试图制作一个表单,在选择某些元素后,向表单添加元素.例如,在用户选择一个国家/地区后,我想要一个ajax调用,其中找到与该国家相关联的所有区域/状态,然后将其插入到表单中的select元素中.然后,一旦用户选择区域/状态,将发生相同的过程,并且另一个元素将被添
我试图制作一个表单,在选择某些元素后,向表单添加元素.例如,在用户选择一个国家/地区后,我想要一个ajax调用,其中找到与该国家相关联的所有区域/状态,然后将其插入到表单中的select元素中.然后,一旦用户选择区域/状态,将发生相同的过程,并且另一个元素将被添加到窗体中以响应于所选择的值.作为一个旁观者,我想做的这一切都不明智.至于我在这个观点:
<%= form_tag(find_school_path,:method=>'get',:class => 'form-horizontal',:id => 'find_by_country_form') do %>

    <%= label_tag :country_selection,"Country" %>
    <%= select_tag :country_selection,options_from_collection_for_select(@countries,:id,:name),:prompt => "Country" %>

<% end %>

然后在该视图的javascript文件的内部,我在选择一个国家/地区时处理ajax调用:

$('#country_selection').change(function(){
  $.ajax({
    url: "find/country_selection",type: "GET",data: {'country=' + $('#country_selection option:selected').value() },})
});

然后,在我的控制器里面,上面的url:路由到我有:

def country_selection
    @country = Country.find(params[:country])
    @regions = @country.regions

    respond_to do |format|
       format.js {  }
    end
end

最后,在我的country_selection.js.erb文件中我有:

$('#country_selection').after('<%= label_tag :region_selection,"State/Region" %><%= select_tag :region_selection,options_from_collection_for_select(@regions,:prompt => "State/Region" %>');

我没有得到这个工作.我甚至不确定我是这样做的.当我点击选择并更改选项时,页面上的任何内容都会更改.

我的代码基本上是罚款,但’.change’事件没有得到承认.我把它改为’.live(‘change’,function(){…})’,它的工作很好.

解决方法

我看过的并不是最简单的代码,但从根本上看,我没有任何错误.

我会在那里发出一些警报,所以你可以缩小问题的位置.您可以将其中一个放在更改功能中,以确保该命令正在被击中,您可以在country_selection.js.erb中添加一个,以确保该命中.这将有所帮助.

我也会更改country_selection.js.erb,以便在需要新选择的div容器中渲染一个部分,这样就可以将该代码放在一个部分中,并且将会更加细腻.您可以将参数传递给所选国家/地区的部分.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读