0

キーアップ時にajaxリクエストを送信し、コンテンツを置き換えるための応答を返す入力テキストがあります。私のフォームは次のようになります。

 = form_for(:search, :url => "/users/search", :remote => true) do |f|
   = f.label :user, "Type to find users"
   = f.text_field :user

UsersController検索アクションは、ajaxデータに基づいてユーザーを検索し、search.js.erbテンプレートをレンダリングします。私の検索アクションは次のようになります。

 def search
    @users = User.search(params[:user])
    respond_to do |format|
      format.js{}
    end
  end

これで、search.js.erbテンプレートは次のように単純になります。

$('.users_info').html(<%=j render @users %>);

ファイアバグを調べても、ページのコンテンツを置き換えない場合、応答は正しいです。アラートを設定すると、ユーザーにアラートが表示されます。ページ内の既存のコンテンツを置き換えることができないのはなぜですか。私が間違っていることはありますか?

4

1 に答える 1

1

js.erbを使用する必要が本当にありますか?あなたの場合、あなたは単に

$('form').bind('ajax:success', function(e, data){
    $('.users_info').html(data);
});

本当に必要な場合は、次を試してください。

$('.users_info').html('<%=j render 'search_user' %>');
于 2012-05-05T13:10:33.550 に答える