事情是这样子的。
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 来砍死我啊呵呵呵。