有兩個視窗: A視窗(父),B視窗(模態)
A視窗裡有一個DATAGRID,一個按鈕。
點擊按鈕時,彈出B視窗(模態)。在B視窗中新增數據,提交後,要求B視窗自關閉,然後刷新A視窗(父)
彈出子窗體b.html , 當關閉子窗體時觸發父頁刷新
最近做物資系統的時候,又牽涉到模態視窗的問題了,上次做的時候沒遇到這次這麼多東西,記下來吧
父親視窗js方法
function openwin(id){
var answer=window.showModalDialog("demand.do?f"demand.do? =" id "&d=" escape(new Date()),window.self,"dialogWidth:700px;dialogHeight:620px:center:yes");
if(answer==1){
window. location.href = "demand.do?method=selmd&d=" escape(new Date()); //前往處理頁面
//window.location.reload(); 刷新父視窗
//winow .location.reload(true);
}
}
加個escape(new Date()) 避免讀取緩存,當然也可以在子視窗中,加入
子視窗js 方法:
function reValf >window.returnValue=1; //父視窗中answer的值
window.close();
}
開啟模態視窗之後,父視窗會一直等待子視窗回傳個值,如果是表單提交或是button就執行reVal()方法
返回answer的值,window.returnValue=1 這個地方我測試了好像只能返回String類型的,數組類型的不好使
在子視窗中使用window.opener.location.reload(); 不好使,不嘗試用於模態視窗,window.opern() 好使
還有個問題是:在模態視窗裡form 提交會彈出新窗口,這個問題簡單就在裡面加個
就可以搞定,註:我剛開始是不想透過form提交的,用js window.location.href 跳到不同的action去處理,發現
就不起作用了,似乎
只是針對form action=""才起作用,這個地方應該可以用iframe 去實現。