jsp弹出框传值问题(一个jsp 点击按钮弹出另一个jsp,选中记录带回数据显示在指定框中)

如图,共有两个jsp:
一:add.jsp;二;select.jsp
add.jsp
select.jsp
其中在add.jsp上点击请选择按钮,弹出select.jsp页面,选择之后点击确定,应该如何将值传递回来,我知道是那个通过url携带参数,但是我一直写不对。下面附上两个jsp页面的源码:

## # 【1.add.jsp】:

<script>
function openwindow(){ 
    window.showModalDialog("/jxw/xq.do?action=showTjList",window,
    "status:no;scroll:yes; dialogWidth:400px;dialogHeight:500px"); 
        } 
</script>
<body>
 <form id="addForm" action="<c:url value='/xq.do?action=doAddxq'/>"
            method="post" id="addForm" name="addForm">
            <tr>
                    <th><b>*</b>推荐企业:</th>
                    <td height="25" align="left" bgcolor="#FFFFFF" colspan="3"><textarea
                            readonly="readonly" class="cl_textarea_small" name="xqName"
                            id="xqName" width="100"> ${tjqy.qymc}</textarea> <input type=button
                        name=inputboxbt value=请选择 onclick="openwindow();"></td>
                </tr>
                </body>

【2.select.jsp】

<script>
 function bconfirm(){
             opener.document.all['inboxname'].value=document.form.inboxname.value;
             document.form.submit();
             window.close();

           }
           function bcancel(){
              window.close();
           }


          //将值传给text文本框 
           function result(form) {
            var a = document.getElementById("inboxname");
              a.value = "";
               for (var i = 0; i < form.elements.length; i++) {
                  var e = form.elements[i];
                  if (e.name == "ifCheck" && e.checked == true) {
                       a.value = a.value + e.value + ","
                   }
               }
           }
</sctipt>
<body>
    <h3>请选择企业:</h3>
                <div class="op_btn"></div>
                <!--按钮区域结束  -->
                <div class="form">
                    <form method=post name=form id="form"  action=" add.jsp">
                    <!--    <input id="inboxname" type="hidden" name="inboxname" value="" />-->
                              <textarea readonly="readonly" class="cl_textarea_small" name="inboxname" id="inboxname"  value=""></textarea><p>
                        <input type=button name=inputboxbt value=确定 onclick="bconfirm();">

                        <input type=button name=inputboxbs value=关闭 onclick="bcancel();">
                        <table>
                            <tr>
                                <th style="width: 5%;"><input type="checkbox"
                                    onclick="checkOrCancel(this);" class="textCursor" />
                                </th>
                                <th>序号</th>
                                <th>企业名称</th>
                            </tr>
                            <c:forEach items="${domain}" var="domain1" varStatus="status">
                                <tr
                                    <c:if test="${status.count%2 == 0 }">class="grid_dark"</c:if>
                                    <c:if test="${status.count%2 == 1 }">class="grid_dark"</c:if>
                                    id="${domain1.id }">
                                    <td><input type="checkbox" value="${domain1.id }"
                                        name="ifCheck" style="cursor: pointer;" id="ifCheck"
                                        onClick="result(this.form)" /> <input id="qymc.id"
                                        type="hidden" name="qymc.id" value="" /></td>
                                    <td>${status.count }</td>
                                    <td>${domain1.qymc }</td>
                                </tr>
                            </c:forEach>
                        </table>
                    </form>

                </div>
    </div>
    </body>

请问一下,点击确定的时候,弹出的select.jsp页面被关闭,同时在页面add.jsp上面显示出来,这个应该怎么做?哪位大哥知道。麻烦了。

4个回答

select.jsp通过opener得到add.jsp的window作用域,将你选择的记录直接写回add.jsp的控件,其实你代码都差不多了,只是对象搞错了

而且不要用document.all,不是所有浏览器都支持这个ie的独特属性,要使用document.getElementById,而且IE11已经放弃document.all

     function bconfirm(){
        opener.document.getElementById('xqName').value==document.form.inboxname.value;
       // opener.document.all['inboxname'].value=document.form.inboxname.value;
        document.form.submit();
        window.close();

    }
qq_22701921
指尖1993 回复showbo: 会的。谢谢了!
4 年多之前 回复
showbo
支付宝加好友偷能量挖 回复流年为谁殇: 有用记得采纳。。黑河
4 年多之前 回复
qq_22701921
指尖1993 好的,谢谢了。
4 年多之前 回复

select.jsp?参数名称=参数值&参数名称1=参数值1

qq_22701921
指尖1993 回复丵鹰: 好的,谢谢了,我来看看。
4 年多之前 回复
strutce
丵鹰 回复qq_22701921: 也可以form提交,在另一个jsp写Java代码获取request.getParameter("参数名称")
4 年多之前 回复
qq_22701921
指尖1993 那个我要是有大量的数据带回去,也应该像这样做吗?
4 年多之前 回复

模态也行的,好多前台框架或者插件都行的

qq_22701921
指尖1993 感谢,我还是新手,对模态不懂。
4 年多之前 回复

大量的数据带回去,道理应该也是一样的

qq_22701921
指尖1993 嗯,谢了
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问