利用ajaxSubmit()提交表单后,子窗口关闭,父窗口显示查询页面
問(wèn)題描述:我在父窗口點(diǎn)擊添加用戶,彈出子窗口頁(yè)面,在子窗口填寫表單后,點(diǎn)擊保存,交給后臺(tái),后臺(tái)保存數(shù)據(jù),并查詢數(shù)據(jù)庫(kù),將所有用戶顯示在父窗口中。
解決之路:
1.我在表單提交之后加上了這么一句:window.close() ,可是加上這一句之后,表單不提交了。
2.google之后,看到有網(wǎng)友說(shuō)要等表單提交之后,再關(guān)閉,也給出了解決方案:setTimeout(function(){window.close()},1000),可是表單依舊不能提交。
3.這個(gè)方案行不通后,我參考了另外一位網(wǎng)友的回答,必須用ajax異步提交表單,可是組織數(shù)據(jù)是個(gè)難題,我那個(gè)表單里東西太多了,后來(lái)看到了這個(gè)
可是后臺(tái)接收不到數(shù)據(jù),我想應(yīng)該時(shí)我的表單的enctype="multipart/form-data"。
4.再堅(jiān)持堅(jiān)持,或許就有方案能夠解決了,果不其然,讓我找到了ajaxSubmit()(至于其用法以及與ajaxForm()的區(qū)別用時(shí)再google),這時(shí)候我再寫上window.close()后,表單能提交了,后臺(tái)數(shù)據(jù)也能接收了,子窗口也能關(guān)閉了,可是父窗口并沒(méi)有將查詢后的結(jié)果顯示出來(lái),這個(gè)時(shí)候我測(cè)試了一下,我發(fā)現(xiàn)當(dāng)我不添加文件的時(shí)候,父窗口是能夠?qū)⑺杏脩魯?shù)據(jù)(包含剛才新添加的)顯示出來(lái),為什么呢?我依然不明白。哦,對(duì)了,最后一點(diǎn)問(wèn)題是在我添加這么一句迎刃而解:window.opener.location.reload()。
$("#Form1").ajaxSubmit({type: "POST",url:"system/elecUserAction_save.do",success:function(){window.opener.location.reload();window.close(); }});我后臺(tái)用的是struts2 //保存用戶public String save() {userService.saveUser(user);return "save";}struts.xml配置: <result name="save" type="redirectAction">elecUserAction_home.do</result>
總結(jié)
以上是生活随笔為你收集整理的利用ajaxSubmit()提交表单后,子窗口关闭,父窗口显示查询页面的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 向日葵在mac不能以服务器运行吗,mac
- 下一篇: 加载中动画