如何使用 javascript in Struts 将值从子页面传递到父页面

How to pass value from child page to parent page with javascript in Struts

当单击 boo 按钮时,打开 showmodeldialoge 并在按下 foo 按钮时检查 showmodeldialoge 中的某些行无法从子页面获取值并传递给父页面 父页面代码:

function explain() {
//newwin = window.open('domain.do?method=showBranchForm','newwin');

var a='domain.do?method=showBranchForm';
window.showModalDialog(a, self, 'status:no;resizable:yes;help:no;scroll:yes;width:1300;height:600');

}

<input <%=branchEnable%> class="btn"
style="width: 120px" value="boo" type="button"
onclick="explain();" />

应在此处显示子值:

<select id="listbranch"
multiple="multiple" size="8" name="listbranch"
style="width: 200px; font-family: tahoma; font-size: 16"/>

这是子页面:

<script language="javascript" type="text/javascript">
    function TransferData() 
    {
       opener.window.document.forms[0].elements['listbranch'].length=0;
       counter=0;
        document.forms.newform.elements
        for(i=0; i<document.forms[0].elements.length; i++)
        {
        if(document.forms[0].elements[i].type=="checkbox")
        {
            if(document.forms[0].elements[i].checked==true)
        {
            opener.window.addOption(document.forms[0].elements[i].value,document.forms[0].elements[i].id,counter); 
            counter++;
        }
        }
  }
 window.close();
}
</script>

 <tbody>
<%
    if(branchsIterator != null){
        while(branchsIterator.hasNext()){
        Branch t = branchsIterator.next();
%>
    <tr>
        <td><input type="checkbox"  id="<%=t.getBranchCode()%>"  value="<%=t.getBranchName() %>"/></td>
        <td ><%=t.getBranchName() %></td>
        <td><%=t.getBranchCode() %></td>
    </tr>
    <%} 
    }
    %>
</tbody>



<input class="btn" type="button" value="اfoo" style="width:200px" onclick="TransferData();" />

要获取值,您应该使用在使用 window.showModalDialog 时返回的 var 变量。这是一个对象,当您在子 window 中按下按钮时,您可以在其中存储您的值。

window.returnValue = 'some value';

所以,在父window中你可以得到函数returns之后的值。

var dialog = window.showModalDialog(a, self, 'status:no;resizable:yes;help:no;scroll:yes;width:1300;height:600');
alert(dialog.returnValue);