我已使用以下代码将视图模板打开为弹出窗口:
<%= link_to 'New User', "/users/new", :method => :get, :target => "_blank" %>
controller code:
def new
render :layout => false
end
new.html.erb几乎没有文本框和按钮作为保存和取消
我的问题是如何在点击“保存”或“取消”按钮时关闭弹出窗口?
谢谢你, Sudhir C.N。
答案 0 :(得分:0)
您需要使用javascript进行操作。用户保存后,您可以使用另一个发送此视图的视图进行响应:
<script type="text/javascript">
window.close();
</script>
答案 1 :(得分:0)
这是一个更多的javascript问题,而不是Rails特有的问题。
您的取消按钮非常简单,例如:
<html>
<script>
function CloseWindow() {
ww = window.open(window.location, "_self");
ww.close();
}
</script>
<button type="button" onclick="CloseWindow();">Cancel</button>
</html>
(从http://snippets.dzone.com/posts/show/267被盗)
您的提交按钮不应更改。它将需要正常POST到您的控制器。控制器呈现的成功响应应该在闪存中显示“成功”消息,然后可以在三秒后自动关闭窗口:
<script>
setTimeout( function() { CloseWindow(); }, 3000);
</script>
这是一个非常简单的解决方案。也许可以考虑为原型或jquery调查一些弹出库(取决于你正在使用的库)。不确定现代弹出窗口拦截器是否呈现这些D.O.A.虽然。你的target="_blank"
方法应该与弹出窗口拦截器很好用。
编辑:如果您使用的是jquery,可以考虑使用模态对话框:http://jqueryui.com/demos/dialog/#modal-form