0

我有以下代码来创建就地编辑器:

new Ajax.InPlaceEditor('artifact_pretty_display_date_110_in_place_editor', '/artifacts/set_artifact_pretty_display_date/110', {evalScripts:true})

更改日期后,响应看起来不错:

Element.update("artifact_pretty_display_date_110_in_place_editor", "12/06/2008");
Element.update("artifact_visible_display_date_110", "12/06/2008");
Element.update("flash_message", "<div class=\"flash_message\" style=\"display:block;\">\r\n            The Document's date was changed to 12/08/2008. \r\n</div>");
Element.update("flash_error", "<div class=\"flash_error\" style=\"display:none;\">\r\n\r\n \r\n</div>\r\n");

唯一的问题是我的就地编辑器字段实际上显示了这个响应,它没有得到评估。就像将 evalScripts 设置为 true 一样,什么都不做。有谁知道为什么会这样?

谢谢!

4

2 回答 2

0

这被证明是 Scriptaculous 的 InPlaceEditor 使用 Ajax Updater 而不是 Ajax Request 对象同时还使用 page.replace_html 的问题。如果遇到此错误,可能值得从 scriptaculous 中弹出打开的 controls.js,并确保在 handleFormSubmission 方法中使用了 Ajax Request 对象。如果没有,您可能需要将 htmlResponse 设置为 true,或者根据 scriptaculous 的版本,您可能需要设置一些其他标志。这正是我的问题所在。

于 2009-12-22T00:19:20.060 回答
0

查看文档,在这种情况下,evalScripts 似乎不是一个有效的选项,我认为您的代码需要如下所示:

new Ajax.InPlaceEditor('artifact_pretty_display_date_110_in_place_editor', '/artifacts/set_artifact_pretty_display_date/110', ajaxOptions:{evalScripts:true})
于 2009-12-21T22:00:09.617 回答