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

ドキュメントを見ると、そのコンテキストでは 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 に答える
0

これは、page.replace_html を使用しながら Ajax Request オブジェクトを使用するのではなく、Ajax Updater を使用する Scriptaculous の InPlaceEditor に問題があることが判明しました。このエラーが発生した場合は、scriptaculous から controls.js を開き、handleFormSubmission メソッドで Ajax Request オブジェクトが使用されていることを確認してください。そうでない場合は、htmlResponse を true に設定するか、scriptaculous のバージョンによっては他のフラグを設定する必要があります。それがまさに私の問題があった場所です。

于 2009-12-22T00:19:20.060 に答える