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

也许您应该在 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 回答