我有一个日历,在那里你点击一天,通过一个简单的模式弹出表单添加事件。我正在使用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();函数时,表单可以正常提交并更新日历,只是让模式窗口保持打开状态。我需要这个功能,但与窗口关闭。
发布于 2012-11-13 09:07:04
好了,我想通了,这说明我对这一切有多了解!我所要做的就是将close函数放在一个ajax:complete回调函数中。
$(".edit_log_entry").bind('ajax:complete', function() {$.modal.close();});https://stackoverflow.com/questions/13352930
复制相似问题