我在控制器的显示视图中,如果用户单击链接,则会显示一个带有表单的弹出窗口。如果用户单击“提交”,表单将通过 ajax 提交到同一控制器中的自定义“操作”。在 action.js.erb 部分中,我有以下代码:
window.opener.location.reload();
window.close();
它工作正常,但整个显示视图页面被重新加载。而且我只想将焦点重新放在 js.erb 部分中并编写一些 div 更新。
我在控制器的显示视图中,如果用户单击链接,则会显示一个带有表单的弹出窗口。如果用户单击“提交”,表单将通过 ajax 提交到同一控制器中的自定义“操作”。在 action.js.erb 部分中,我有以下代码:
window.opener.location.reload();
window.close();
它工作正常,但整个显示视图页面被重新加载。而且我只想将焦点重新放在 js.erb 部分中并编写一些 div 更新。
不要从 helper 调用,而是在 Ajax 的 onsuccess 事件上关闭窗口。
success: function(g) {
window.close(); OR $('#popup_id').hide();
$('#div_id').html("Write message or other response form your action").
}
完成后使用 jquery 隐藏它。
$('#popup_wrapper_id').fadeOut();
在关联的 action.js.erb 文件中,添加以下代码。
function hideDialog() {
var $dialog = $('#dialog_area');
if ($dialog.is(':visible')) {
PageOverlay.hide();
$dialog.hide();
}
return this;
};