我正在试图弄清楚这是否可行。
我有一个具有Form-Foo的Page-A,并在新窗口中对Bar进行操作。
点击提交后,我希望表单提交并重新加载Page-A。
到目前为止,我只能让一个或另一个工作......任何指针都会受到赞赏。
除了DudeSolutions解决方案......我试过这个:
$(document).ready(function() {
$('#foo').submit(function() {
$.post('bar.asp', $(#foo).serialize(), function(data) {
window.location.reload();
});
});
});
相同的结果......我可以提交表单并打开一个新选项卡......但是Page-A没有重新加载。
答案 0 :(得分:4)
如果您打算提交表单并重新加载页面,那将是默认行为,并且只有action属性中的url不正确。如果是这样,只需更改URL,无论如何都不需要ajax:
$(function() {
$('#Form-Foo').attr('action', 'Page-A url');
});
或:
$(function() {
$('#foo').on('submit', function(e) {
e.preventDefault();
setTimeout(function() {
window.location.reload();
},0);
this.submit();
});
});
只是排队重新加载应该足够等到表单发送后重新加载页面,但是当你离开浏览器选项卡时大多数浏览器停止超时,直到你返回到该选项卡它才会真正重新加载,但这应该是不明显的。
答案 1 :(得分:-1)
这是一个想法:
<script type="text/javascript">
$("#my_form").submit(function() {
$.ajax({
type: "POST",
url: "/path/to/post/handler/",
data: $("#my_form").serializeArray(),
success: function() {
top.reload();
}
});
return false;
});</script>