単純なモーダル ポップアップ フォームからイベントを追加する日をクリックするカレンダーがあります。Eric Martin の jquery プラグインを使用していますが、ajax 応答を停止せずにフォームを閉じることができないようです。
これが私のコードです:
function simple_dialog_link(request, title) {
$.get(request, function(data) {
$.modal("<div class='modal'><div class='bar' >"+title+"</div><div class='inside'>"+data+"</div></div>");
$(".modal").draggable({ handle: ".bar" });
$("input.save").live("click", function(){
$.modal.close();
});
});
};
これにより、フォームが完全に読み込まれ、ウィンドウが閉じられますが、コントローラーの下の html パスにリダイレクトされます。
def update
@log_entry = LogEntry.find(params[:id])
@athlete = User.find_by_id(@log_entry.athlete_id)
@log_entry.update_attributes(params[:log_entry])
@date = @log_entry.date.to_s
@cal_class = LogEntry.get_class_name(@date)
@entries = LogEntry.cal_entry(@date, @athlete.id)
respond_to do |format|
format.html { redirect_to coaches_path }
format.js
end
end
私がこれまでに試したことはreturn: false
、モーダルクローズ機能の下に追加することです。これはモーダルウィンドウを閉じますが、カレンダーまたはデータベースの更新に失敗するため、コントローラーに送信する前にフォームを切断します。ajax関数を中断せずにウィンドウを閉じる関数が必要です。奇妙なのは、フォームが正常に送信され、$.modal.close();
機能を削除するとカレンダーが更新され、モーダルウィンドウを開いたままにすることです。この機能が必要ですが、ウィンドウを閉じます。