6

ユーザーがフォームに無効なものを入力したときにエラー メッセージを表示するモーダル ウィンドウを表示したいのですが、問題がなければ別のアクションをレンダリングします。ただし、モーダルウィンドウを表示しようとすると

render :js => "jQuery.facebox(#{...})"

呼び出された実際の JavaScript のみが表示されます。

try {
  jQuery.facebox(...)
} catch (e) { alert('RJS error:\n\n' + e.toString());
  alert('jQuery.facebox(\"<div class=\'error\'>Error</div>\")');
  throw e;
}
4

3 に答える 3

7

コードをパーシャルに入れてみましたか?だから代わりに

render :js => "jQuery.facebox(#{...})"

試す

render :partial => "my_facebox_popup" 

次に、_my_facebox_popup.html.erbパーシャル内にコードを配置します。

<script type = "text/javascript">
...
</script>

firebugで発生したエラーをデバッグします。

于 2010-05-17T22:09:10.690 に答える
1

おそらく、待っている応答の dataType を jQuery 呼び出しで指定する必要があります。

例えば:

$.ajax({ 
  url: "/controller/action/id", 
  success: function(){
    $(this).addClass("done");
  },
  dataType: 'script' 
});
于 2010-05-17T16:37:00.640 に答える
1

これを試して

 render :update do|page|
   page <<  "jQuery.facebox(#{...})"
 end
于 2010-05-17T14:10:04.160 に答える