2009-06-12 7 views
0

私はRailsアプリケーションでjQuery Form Pluginを使用しています。私はこのようなフォームしている:私application.jsファイルがjQuery Form PluginをRails js.erbテンプレートで使用する方法は?

<form action="/comments" id="comment_form" method="post"> 
    <textarea cols="60" id="comment_comment" name="comment[comment]" rows="3"></textarea> 
    <input id="comment_submit" name="commit" type="submit" value="Add comment" /> 
</form> 

があります

jQuery.ajaxSetup({ 
    'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")} 
}); 

$(document).ready(function(){ 
    $("#comment_form").ajaxForm(); 
}); 

私のコメントコントローラは、このようなものです:

def create 
    @comment = Comment.new(params[:comment]) 

    respond_to do |wants| 
    if @comment.save 
     flash[:notice] = 'Added comment.' 
     wants.js 
    end 
    end 
end 

そして、私は、いくつかのjqueryのコードを持っています/ views/comments/create.js.erbのように:

$("#comment_form).hide(); 

とその他のもの。

私の問題は、create.js.erb内のjQueryコードは決して起こらないということです(フォームが非表示にならない)。代わりにapplication.jsでこのコードを使用すると(Railscastのおかげでこのコードは役に立ちます)

すべてが正常に動作します。 create.js.erbのコードはすごくうまくいきます!むしろjQuery Formプラグインを使用したいのですが、create.js.erbコードを実行する方法を理解できません。次のような場合:

$("#comment_form").ajaxForm({success: function(){$("comment_form").hide()}}); 

jQueryコードが動作します。しかし、私はerbテンプレートを実行する必要があります(私は部分的な内部をレンダリングするようなことをするためです)。

ありがとうございました。

答えて

1

私はこれを理解しました。このスクリーンキャストhttp://blog.edgecase.com/2009/6/15/ajax-file-uploads-made-easy-screencastを見ながら - 私は、彼がデータ型を追加気づいた: 'スクリプト' をので、代わりに

$("#comment_form").ajaxForm(); 

の私は

$("#comment_form").ajaxForm({dataType: 'script'}); 

作品を必要! jQuery Form docsには "dataType == 'script'の場合、サーバーレスポンスはグローバルコンテキストで評価されます。

関連する問題