夢想飛翔

          自強不息
          posts - 111, comments - 30, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          javascript 父子頁面傳值 表單提交

          Posted on 2009-09-24 14:25 love1563 閱讀(1861) 評論(0)  編輯  收藏 所屬分類: Java語言*初級版

          javascript 父子頁面傳值 結合struts表單提交

          需求如下:
          父頁面,要通過表單(FormBean)提交,表單中有一個屬性是通過打開一個子頁面輸入值,然后回填到父頁面中,最后通過父頁面的表單去提交。

          javascript 父子頁面傳值 結合struts表單提交

          父子頁面傳值,用javascript解決,是一個很好的方案,在這里我也是參考網上其他的用法寫的。

          需求如下:
          父頁面,要通過表單(FormBean)提交,表單中有一個屬性是通過打開一個子頁面輸入值,然后回填到父頁面中,最后通過父頁面的表單去提交。

          父頁面參考如下:

          1. <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
          2. <%@ include file="../../common/taglibs.jsp"%>
          3.  
          4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          5. <html:html lang="true">
          6. <head>
          7.       <html:base />
          8.       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          9.       <title>設備信息查詢</title>
          10.       <link rel="stylesheet" type="text/css" href="../../../css/main.css">
          11.       <script type="text/javascript">
          12.       function pop(){
          13.        var srcFile = "../pop/ChooseUserSet.jsp";
          14.        var winFeatures = "dialogHeight:300px; dialogLeft:200px;";
          15.        var obj = document.getElementsByName("userForm");
          16.        var showUserSet = document.getElementById("showUserSet");
          17.        obj.showUserSet = showUserSet;
          18.       
          19.        //alert(obj[0].userset.value);
          20.        window.showModalDialog(srcFile, obj, winFeatures);
          21. }
          22.       </script>
          23. </head>
          24.  
          25. <body>
          26.       <html:errors />
          27.       <h2 align="center"> 用戶管理界面</h2>
          28.       <div id="m1" align="center">
          29.       <html:form action="/jsp/sec/user/user.do" method="post">
          30.       
          31.        <table width="90%" border="0" cellpadding="0" cellspacing="0" class="table7">
          32.               <tr>
          33.        <td height="30" class="table-blue1"><div align="left">選擇用戶集</div></td>
          34.        <td height="30" colspan="3"><div align="left"><input name="chooseuserset" type="button" class="input2" value="選擇" onClick="pop()"></div></td>
          35.        </tr>
          36.        <tr>
          37.        <td height="30" class="table-blue1"><div align="left">已選擇用戶集</div></td>
          38.        <td colspan="3"><div align="left" id="showUserSet"></div></td>
          39.        </tr>
          40.        <tr>
          41.        <td height="30" colspan="3">&nbsp;</td>
          42.        <td><div align="left"><html:submit property="submit" styleClass="input2" value="提交"/></div></td>
          43.        </tr>
          44.        </table>
          45.        <input type="hidden" name="userset">              //html寫法
          46.        <html:hidden property="userset"/>                      //struts寫法
          47.        <html:hidden property="action" value="userAdd"/>
          48.        </html:form>
          49.       </div>
          50. </body>
          51. </html:html>

          1. FormBean需要綁定這個隱藏域userset,進行驗證。
          2. var showUserSet = document.getElementById("showUserSet");
              obj.showUserSet = showUserSet;
              我動態給obj的對象新增一個屬性,叫showUserSet,為了給彈出頁面傳值。
          3. window.showModalDialog(srcFile, obj, winFeatures);
              一定要通過showModalDialog方法。

          子頁面參考如下:

          1. <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
          2. <%@ include file="../../common/taglibs.jsp"%>
          3.  
          4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          5. <html:html lang="true">
          6. <head>
          7.       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          8.       <title>設備信息查詢</title>
          9.       <link rel="stylesheet" type="text/css" href="../../../css/main.css">
          10.       <script type="text/javascript">
          11.        function send(userset){
          12.              var str = "";
          13.             var obj = window.dialogArguments;
          14.             var len = userset.length;
          15.             for(var i=0;i<len;i++){
          16.                   if(userset[i].checked){
          17.                         str += userset[i].value;
          18.                         str+="|";
          19.                   }
          20.             }
          21.             
          22.             //alert(str.charAt(str.length-1));
          23.             if(str.charAt(str.length-1)=="|"){
          24.                   str = str.substring(0,str.length-1);      
          25.             }
          26.             
          27.             obj[0].userset.value = str;
          28.             obj.showUserSet.innerHTML = str;
          29.             window.close();
          30.        }
          31.       </script>
          32. </head>
          33. <base target="_self">
          34.  
          35. <body>
          36.       <html:errors />
          37.       <h2 align="center"> 用戶管理界面</h2>
          38.       <div id="m1" align="center">
          39.       <form id="userset">
          40.        <table width="90%" border="0" cellpadding="2" cellspacing="0" class="table7">
          41.        <tr>
          42.        <td width="78" height="30" class="table-blue1"><div align="left">用戶集</div></td>
          43.        <td colspan="3" class="table-blue2">
          44.              <div align="left">
          45.                    <input type="checkbox" name="u1" value="北京市質量技術監督局領導用戶集">北京市質量技術監督局領導用戶集<br/>
          46.              <input type="checkbox" name="u1" value="北京市西城區城管執法局高級指揮員用戶集">北京市西城區城管執法局高級指揮員用戶集<br/>
          47.              <input type="checkbox" name="u1" value="北京市朝陽區環境保護局指揮員用戶集">北京市朝陽區環境保護局指揮員用戶集<br/>
          48.              </div>
          49.        </td>
          50.        </tr>
          51.        <tr>
          52.        <td>&nbsp;</td>
          53.        <td><div align="left"><input name="choose" type="button" class="input2" value="選擇" onclick="send(userset.u1)"></div></td>
          54.        </tr>
          55.        </table>
          56.        </form>
          57.       </div>
          58. </body>
          59. </html:html>

          1.  var obj = window.dialogArguments; 接收到父頁面傳來的對象。
          2. <base target="_self"> 必需要有。
          3. for(var i=0;i<len;i++){
               if(userset[i].checked){
              str += userset[i].value;
              str+="|";
               }
              }

              用"|"作為多個值的分融符

          主站蜘蛛池模板: 天峨县| 乌拉特前旗| 阳城县| 赣州市| 凤山县| 大悟县| 忻州市| 龙门县| 如东县| 长岛县| 东源县| 广东省| 伊春市| 扬中市| 永川市| 墨竹工卡县| 岳阳县| 瓮安县| 忻城县| 金门县| 如东县| 凤山市| 石景山区| 任丘市| 竹北市| 石泉县| 吉水县| 承德市| 定陶县| 五常市| 屯门区| 宜城市| 高碑店市| 衡阳市| 木里| 卢龙县| 汤原县| 揭西县| 绥阳县| 仁怀市| 德令哈市|