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

时间:2015-12-28 12:38:47

标签: javascript struts

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

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();" />

1 个答案:

答案 0 :(得分:1)

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

window.returnValue = 'some value';

因此,在父窗口中,您可以在函数返回后获取值。

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