0

HTML送信を介してモデルを更新する管理フォームがあります。管理フォームのリンクまたはボタンを介して、「プレビュー」のためにフォームの内容を Ajax モーダル ダイアログに送信できるようにしたいと考えています。

HTML送信を中断せずに、フォームの内容をAjax経由でモーダルダイアログに送信する方法はありますか? これまでのところ、js レンダリングを中断する html としてデータをモーダルに取得することしかできません。私が見つけたすべてのAjax送信の例は、html送信を中断するフォームに添付されています。

提案および/またはポインタをいただければ幸いです。

価値のあるRails 3.2.12を使用しています。

4

2 に答える 2

1

モーダルのレンダリング方法に依存すると思います。サーバー側で実行していて、フォームの値を ajax コントローラー アクションに取得する必要があるだけの場合は、jquery を使用してこのようなことを行うことができます。」

$.post(ajaxUrl + "?" + $("#myform").serialize())

ajaxモデルに送信できるフォーム値のクエリ文字列を生成します。

または、モーダルクライアント側を構築している場合は、試してください

$("#myform").serializeArray()

name, valueペアの配列を取得する

于 2013-02-16T02:57:47.010 に答える
0

Rails 3.2.12 でこれを動作させるために必要なことは次のとおりです。

意見:

<%= link_to 'Preview Promotion UI', admin_preview_promotion_url, id: :promotion_preview %>

上記のリンクは、フォーム do/end 内にあります。

application.js の Javascript

$("#promotion_preview").live('click', (function (event) {
event.preventDefault();
$.post("/store/admin/promotions/preview",
    $(event.currentTarget.parentElement).serialize().replace('=put&', '=post&'),
    {},
    "script"
);
}));

Rails.js は、応答のタイプを PUT に設定し、ルーティングの邪魔になる隠しコードをページに挿入します。少なくともこの場合、PUT を POST に置き換えるだけで問題が解決します。

このコードを使用すると、通常どおりフォームの更新を投稿し、フォーム データを使用してモーダル ダイアログの「プレビュー」を有効にすることができます。

于 2013-02-16T21:01:55.887 に答える