使用layer弹窗,弹窗为iframe,即B页面,父页面为A页面。
B页面中打算用form表单提交数据到服务器,点击按钮save执行操作,form的id=”editUser”:
ps:$(this).submit();
等价于$("#editUser").submit();
原因不知,网上的方法都是对form进行提交。
$("#save").click(function(){
$("#editUser").submit();
parent.location.reload();
//parent.layer.close(iframe);//如果执行这一步,会导致submit无法提交到服务器,这里用刷新页面使弹窗关闭
})
这3个步骤,只要执行第3步,就无法将form提交到服务器,注释掉第三步后,可正常提交。
解决参考:http://blog.csdn.net/zoujian1993/article/details/50698224
js里边代码的执行顺序并不一定是按照代码的顺序执行的。所以呢,不能直接在按钮的点击事件里执行submit()之后执行关闭操作。
所以使用ajax提交表单:
$('#save').on('click', function(){
save();
});
function save(){
$.ajax({
type:"post",
url:"<%=basePath%>/BSMSys/bUser/save",
data: $("#editUser").serialize(),//序列化表单数据
complete: function() {
parent.layer.closeAll('iframe');//关闭弹窗
}
});
}