0

私は奇妙な問題に直面しています。
ボタンを押したときにページに読み込みアイコンを表示したいだけです。
の呼び出しにform_remote_forAjaxオプションが含まれている場合、RJSスクリプトは機能しません。

これは機能します(「ロード」はコントローラーとRJSによって隠されています):

意見:

<%=form_remote_for(:job, @job, {:url => {:action=>:create}}) do |f| %>
[...]
<div id="loading">Loading...</div>

コントローラ:

def create  
  render:action => "create.js.rjs"   
終わり

RJS:

page.hide 'loading'

これは機能しません(追加:loading=>と読み込みだけがビューに表示されますが、以前のようにコントローラーによって隠されることはありません):

<%=form_remote_for(:job, @job, {:url => {:action=>:create}}, {:loading=>"$('loading').show()"}) do |f| %>
[...]
<div id="loading" style="display:none;">Loading...</div>

したがって、への呼び出しにform_remote_forAjaxオプションが含まれている場合、RJSスクリプトは機能しません。なんで?

4

3 に答える 3

0

フォームを次のように変更します。

<% form_remote_for (:job, @job, :url => {:action => :create}, :loading =>"$('loading').show()") do |f| %>
# ...
<% end %>

create が次のようになっていることを確認します。

  # POST /jobs
  # POST /jobs.xml
  def create
    render :action => "create.js.rjs"
  end

create.js.rjs が次のようになっていることを確認してください。

page.hide 'loading'

このシナリオは私にとってはうまくいきます。あなたが持っていたように、「new」に投稿していたため、テンプレートでerbを返していました-私が行った迅速な足場の実装に基づいています。大規模な編集の前に言ったように、私は新しいので、まだ何かが足りないかもしれませんが、これでうまくいくはずです.

編集:「これはあなたのコードですか?」を削除しました。役職。

于 2009-07-19T22:17:59.300 に答える
0

「なぜ」という質問に直接答えていませんが:loaded、ファイルに依存するのではなく、パラメーターを使用して読み込み中の DIV を非表示にすることを検討しましたrjsか?

于 2009-07-20T01:43:34.183 に答える