Rails と jquery を RJS テンプレートと共に使用して、さまざまな AJAX 要求を実行しています。
私の Ajax のほとんどについて、次のように application.js のフォームに送信ハンドラーをアタッチします。
$('#tagging_flickr_photos').submitWithAjax();
$('#tag_submit').click(function() {
$('#flickr-photos-status').show();
});
これは、いくつかの処理を行うフォーム アクションを呼び出してから、次のように RJS テンプレートに転送します。
$("#flickr-photos-status").hide();
$("#flickr-photos").fadeIn();
$("#flickr-photos").html("<%= escape_javascript(render(:partial => 'flickr_photos_for_tagging_content')) %>");
これは御馳走になります。
今、私は同じことをしようとしていますが、ドロップダウンで別の値を選択し、フォームを送信しないことに基づいています。ハンドラーをドロップダウンにアタッチするための私の JavaScript は次のとおりです。
$('#film_film_name_id').change(function() {
$.get('/admin_film/make_tags?film_name_id=' + $("#film_film_name_id").val() + '&film_speed_id=' + $("#film_film_speed_id").val());
});
私のコントローラー メソッドは、いくつかの処理を行ってから、RJS テンプレート (make_tags.js.erb) に転送します。
$("#film_tags").val(<%=@tags%>)
ただし、テンプレートは実行されていないようです。ログに、メソッドを呼び出してテンプレートをレンダリングしているというエントリが表示されますが、テンプレートに何を入れても何も起こらないようです。そこに Javascript アラートを入れましたが、起動しません。
問題は Javascript ハンドラーのアタッチに関係していると思いますが、何が欠けているのかわかりません。
助けてくれてありがとう。