出现选择动态更改其他选择Rails

时间:2013-02-07 18:06:38

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

进行动态选择时出错。当我改变我的选择时,我的ajax不起作用。

这是视图代码:

<%= select_tag 'cost', options_for_select(Cost.all.map { |c| ["#{c.types}", c.id] }),:id => "cost_select" %>

<script type="text/javascript">
$(document).ready(function(){
    $("#cost_select").live('change',function(){
      $.ajax({
        url: "finances/cost_type",
        type: "GET",
        data: {'cost=' + $('#cost_select option:selected').value() },
      })
    });
});
</script>

我是我的财务总监,我有这个:

def cost_type
  @places = Place.find_by_cost_id(params[:cost])
  respond_with @places
end

我制作cost_type.js.erb文件,我的回复是js。

我的问题是当我更改select标签时没有激活没有一个动作,我的搜索中的代码如何问题我发现这个代码有效但问题是什么?

更新:

我的routes.rb包含:

get "finances/cost_type" => "finances#cost_type"

我用以下内容解决了原来的问题:

$(document).ready(function(){
    $("#cost_select").change(function(){
      $.ajax({
        url: "finances/cost_type",
        type: "GET",
        data: {cost: $("#cost_select option:selected").val() },
      })
    });
});

有了这个,我收到了一个有效的答复(我通过萤火虫验证了):

$("#cost_select").after("<select id="from_money" name="from_money"><option value="2">Luz</option></select>
");

但是,我的观点中没有出现数据。我尝试将其放在不同的<div>中,但<select>不会出现。

我不知道有什么问题,请向我提出任何可能的建议。

1 个答案:

答案 0 :(得分:0)

将您的javascript更改为

$(document).ready(function(){
  $("#cost_select").live('change',function(){
    $.ajax({
      url: "/finances/cost_type",
      type: "GET",
      data: { cost: $('#cost_select').val() }
    })
  });
});

财务前的额外/确保您使用的是绝对路径。 data部分也是错误的,正如其中一条评论所指出的那样,但这是一个更清洁的版本。