进行动态选择时出错。当我改变我的选择时,我的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>
不会出现。
我不知道有什么问题,请向我提出任何可能的建议。
答案 0 :(得分:0)
将您的javascript更改为
$(document).ready(function(){
$("#cost_select").live('change',function(){
$.ajax({
url: "/finances/cost_type",
type: "GET",
data: { cost: $('#cost_select').val() }
})
});
});
财务前的额外/
确保您使用的是绝对路径。 data
部分也是错误的,正如其中一条评论所指出的那样,但这是一个更清洁的版本。