事情是這樣子的。
javascript
今天下午我正刷果殼刷得不亦樂乎,忽然需求就下來了。html
它!就!這!麼!下!來!了!java
客戶說,咱們須要打開一個新窗口來進行模糊查詢,而後選擇一個查詢結果回填到父窗口中。jsp
valy easy。ui
而後我發現那個模糊查詢的頁面叫agentSearch.jspurl
裏面的內容是這樣的spa
function backfill(){ var val = document.getElementById("agentsearch").value; var parWin = window.dialogArguments; parWin.document.getElementById(" ").value = val; window.close(); }
咦爲何getElementById參數會是空的呢代理
無論了多是上一我的沒寫完吧,那就讓我來完成它!!!code
有兩個頁面調用過它orm
createsettlementmanage_search.jsp
commissionsettlement.jsp
可能這兩個頁面須要的查詢條件都差很少吧,反正都調了同一個頁面不是麼
你也是這麼想的對吧?
呵呵。
我打開其中一個文件
吶就當我先打開的它吧
createsettlementmanage_search.jsp
... function showAgentSearch(){ var url = "<%=path%>/commission/agentSearch.jsp"; var param = "dialogWidth:400px;dialogHeight:250px;help:no;unadorned:no;resizable:no;status:no"; return window.showModalDialog(url,window,param); } ...
... <td class="pageCenter">代理人/經紀人:</td> <td class="pageCenter"> <input id="agentcode" name="agentcode" type="text" size="18"> <input type="button" value=">" onclick="showAgentSearch()"> <span style="color:#FF0000">*</span> </td> ...
哎呦寫得不錯哦
吶既然id是agentcode那我在agentSearch.jsp裏面填上agentcode不就行了麼
果然是上一我的沒寫完啊嘖嘖嘖,到底是有多着急的事情啊連這個id都不願加上
而後我淡定地把id給寫了上去
parWin.document.getElementById("agentcode").value = val;
結果成功跑出來了。
對啊你覺得呢?
好了而後我打開了另外一個文件
commissionsettlement.jsp
... function showAgentSearch(){ var url = "<%=path%>/commission/agentSearch.jsp"; var param = "dialogWidth:400px;dialogHeight:250px;help:no;unadorned:no;resizable:no;status:no"; return window.showModalDialog(url,window,param); } ...
... <td class="pageCenter">代理人/經紀人:</td> <td class="pageCenter"> <input id="agentname" name="agentname" type="text" size="18"> <input type="button" value=">" onclick="showAgentSearch()"> <span style="color:#FF0000">*</span> </td> ...
哎呀同樣的嘛,等我把東西交上去就...
等等
id爲何變成了agentname
臥槽。
怎麼能夠這樣,人與人之間最基本的信任呢
接下來就是咱們幾個熱烈討論解決方案的時候了
我主張的是把agentSearch.jsp拷貝一份,改個參數,讓一個文件調用這個agentSearch.jsp,另外一個文件調用另外一個agentSearch.jsp
簡單粗暴。是的我就是這麼不與世俗同流合污
龍哥說還有一種是用div直接在當前頁面顯示就好,正好省的煩開一個新頁面了
用w2ui或者easyui的話順路界面還能更漂亮呢不是
聽起來好有道理,不過代碼要大改
呵呵。
濤哥的意思是能夠在showModalDialog()的時候傳入一個參數parameter,當它是1的時候執行getElementById("agentcode"),當它是2的時候執行getElementById("agentname")
可是這個有一個重大問題就是,showModalDialog()只能傳入三個參數sURL,vArguments,sFeatures
我說咱們能夠把參數放在vArguments裏面啊多和諧啊水到渠成
龍哥說丫忘了咱們還要回填了吧vArguments只能傳父窗口的Object啊
哦。
而後濤哥說我以爲咱們能夠在url裏面放一個參數,就像這樣
agentSearch.jsp?parameter=1
我和龍哥同時對其機智表示讚許並表示黨國的將來仍是要靠大家
接下來就是實現了
那兩個名字好長的文件只不過在url後面打個問號加個參數就不從新寫了
是的我就是懶
如今只要改一下agentSearch.jsp就能夠交差了
生活如此美好
<%String parameter=request.getParameter("parameter");%> ... function backfill(){ var val = document.getElementById("agentsearch").value; var parWin = window.dialogArguments; var parameter = <%=parameter%>; if (parameter == "1"){ parWin.document.getElementById("agentcode").value = val; }else if (parameter == "2"){ parWin.document.getElementById("agentname").value = val; }else{ alert("呵(f**k)呵(you)。"); } window.close(); } ...
先在上面用request.getParameter("parameter")獲取到parameter的值
或者1或者2
固然了在不可抗力的做用下有可能產生一些奇怪的結果
好比說十一點斷電了
而後 var parameter = <%=parameter%>; 是將參數賦值到javascript腳本中
接下來就是執行判斷了
1的話這樣
parWin.document.getElementById("agentcode").value = val;
2的話這樣
parWin.document.getElementById("agentname").value = val;
其餘的話亂入請不要介意
那這樣的話任務就算完成了
在這裏我只想對那個寫這份代碼的前一個同窗說
You silly B!
hui duan!
shen me gui!
ni ma 【嗶-】!
son of bick!
There's a fire starting in my heart~ Reaching a fever piss and it's bringing me out the dark~
Done.
PS. 以上。是的我就是要把全部的變量名都叫 parameter 來砍死我啊呵呵呵。