![](/img/trans.png)
[英]Need to avoid submit form twice to the server when user double clicks on submit button
[英]Need to POST and close window when user clicks submit button
现在我有以下几点:
<%= submit_tag 'Save' ,{:onClick => "window.close()"} %>
这适用于关闭窗口。 不幸的是,它在表单 POST 到服务器之前关闭了窗口。
该窗口是使用主页中的链接创建的:
function amenitiesPopup(){
window.open("/amenities", "Swag", "status,width=600,height=800,resizable,scrollbars=yes","POS");
}
没有:onClick => "window.close()"
表单按预期发布。 之后只需要关闭它。
谢谢
编辑:我的解决方案是让控制器返回一个字符串文字:
if (params[:search])
...
render :text => '<body onload="window.close()"></body>'
end
这将跳过任何布局/视图项目,只呈现一个自动关闭的空主体
刚回来
<body onload="window.close()">
从服务器,这样你的 POST 肯定会在窗口关闭之前通过。 因此,不是从提交文档中关闭,而是在服务器作为回复收到的文档中关闭。 此外,如果您想在之后关闭窗口,您可以考虑发布到 iframe,这取决于您想要实现的目标。
function onSubmit(){
$.ajax({
//POST info and URL etc goes here
}).done(function(){
window.close();
});
}
您需要指定 jquery ajax api 所需的所有参数(url、数据等)。
如果您不使用ajax提交,您将转到您提交的页面并且将不再控制您的窗口,除非您控制目标页面,在这种情况下,您应该将 window.close 添加到目标页面的脚本中:
<script>
window.close();
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.