0

動的選択を行うときにエラーが発生しました。選択を変更すると、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 です。

私の問題は、選択タグを変更したときにアクティブなアクションが1つもないことです。検索のコードの問題はどのようになっていますか?このコードが機能していることがわかりますが、何が問題なのですか?

アップデート:

私の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() },
      })
    });
});

これで、有効な応答を受け取りました(firebugで確認しました):

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

ただし、データがビューに表示されません。別の場所に入れてみました<div>が、表示され<select>ません。

何が悪いのかわからないので、何か良い案があれば教えてください。

4

1 に答える 1

0

JavaScript を次のように変更します

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

財政の前の追加/は、絶対パスを使用していることを確認します。dataコメントの1つで指摘されているように、その部分も間違っていますが、これはよりクリーンなバージョンです。

于 2013-02-08T02:24:37.690 に答える