「已注销」 2015-07-25 02:38 采纳率: 46.7%
浏览 5112
已采纳

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条回答 默认 最新

  • Go 旅城通票 2015-07-25 03:36
    关注

    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();
    
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 MATLAB动图问题
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名