1

我在控制器的显示视图中,如果用户单击链接,则会显示一个带有表单的弹出窗口。如果用户单击“提交”,表单将通过 ajax 提交到同一控制器中的自定义“操作”。在 action.js.erb 部分中,我有以下代码:

  window.opener.location.reload();
  window.close();

它工作正常,但整个显示视图页面被重新加载。而且我只想将焦点重新放在 js.erb 部分中并编写一些 div 更新。

4

3 回答 3

1

不要从 helper 调用,而是在 Ajax 的 onsuccess 事件上关闭窗口。

success: function(g) {
  window.close(); OR $('#popup_id').hide();
  $('#div_id').html("Write message or other response form your action").
}
于 2012-04-04T13:54:39.620 回答
1

完成后使用 jquery 隐藏它。

$('#popup_wrapper_id').fadeOut();
于 2012-04-04T13:50:25.643 回答
0

在关联的 action.js.erb 文件中,添加以下代码。

function hideDialog() {
  var $dialog = $('#dialog_area');
  if ($dialog.is(':visible')) {  
    PageOverlay.hide();      
    $dialog.hide();
  }
  return this;
};
于 2015-08-07T11:38:21.573 回答