父子形成和传递值

时间:2012-10-16 14:06:55

标签: javascript asp-classic parent-child

我有以下作为父母和孩子

家长(只发布脚本和表单标签)

<script type='text/javascript'>
window.onload = function () {
    document.getElementById('NewTicket').onsubmit = sendToChild;
    document.getElementById('sName').onclick = openChild;
}
function openChild() {
    this.disabled = true;
    xWinOpen('SecList.asp');
    this.disabled = false;
}
function sendToChild() {
    if (xChildWindow) {
        var pta = document.getElementById('sName');
        var cta = xChildWindow.document.getElementById('sName');
        cta.value = pta.value;
        xChildWindow.focus();
    }
    return false;
}
var xChildWindow = null;
function xWinOpen(sUrl) {
    // Modify 'features' to suit your needs:
    var features = "left=100,top=100,width=400,height=400,location=0,menubar=0," +
    "resizable=1,scrollbars=1,status=0,toolbar=0";
    if (xChildWindow && !xChildWindow.closed) { xChildWindow.location.href = sUrl; }
    else { xChildWindow = window.open(sUrl, "myWinName", features); }
    xChildWindow.focus();
    return false;
}</script><form name="NewTicket" target="_self" method="POST" action=""><input name="sName" type="text" value="ABC" id="sName"></form>

Child看起来像这样(再一次只有脚本和tbody部分)。

<script type='text/javascript'>
    function sendToParent(myStr)
    {
          alert(myStr)
          var myStrSplit = myStr.split("/")
          opener.document.NewTicket.sID.value = myStrSplit[0]
          opener.document.NewTicket.sName.value = myStrSplit[1]
          document.write(myStrSplit[0])
          document.write(myStrSplit[1])
          self.close();
    }
    </script>
<tbody>
            <%Do While Not oRS.EOF
              sVal = oRS("sID") & "/" & oRS("SecDet")%>
            <tr> 
                <td><%=oRS("sID")%></td>
                <td><a href="#" onclick="sendToParent(" & <%=sVal%> & ")"><%=oRS("SecurityName")%></a></td>
                <td><%=oRS("BBG_Ticker")%></td>
                <td><%=oRS("ISIN_Code")%></td>
                <td><%=oRS("Country")%></td>
                <td><%=oRS("Curr")%></td>
            </tr>
            <%oRS.MoveNext
        Loop%>
        </tbody>
在子oRs(“SecDet”)中的

是5个与“/”连接的字段,我在函数中进行拆分。

我想做什么?  正如您在子表单中看到的那样,将有一个表,我希望当用户单击任何行时,该行上的所有相应的6个字段应填充到父表中的6个文本字段。

我无法实现的目标? 似乎sendToParent()根本不起作用。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

以下代码终于奏效了......

<script>
function openwindow()
{
window.open("SecList.asp","_blank","height=200,width=400,status=yes,toolbar=no,menubar=no,location=no")
}
</script>

和孩子(有更正) Flakes也建议

<script type='text/javascript'>
function sendToParent(myStr)
{
      alert(myStr)
      var myStrSplit = myStr.split("/")
      opener.document.NewTicket.sID.value = myStrSplit[0]
      opener.document.NewTicket.sName.value = myStrSplit[1]
      document.write(myStrSplit[0])
      document.write(myStrSplit[1])
      self.close();
}
</script>
<tbody>
            <%Do While Not oRS.EOF
              sVal = oRS("sID") & "/" & oRS("SecDet")%>
            <tr id="<%="sID" & oRS("sID")%>"> 
                <td><%=oRS("sID")%></td>
                <td><a href="#" onclick="sendToParent('<%=sVal%>')"><%=oRS("SecurityName")%></a></td>
                <td><%=oRS("BBG_Ticker")%></td>
                <td><%=oRS("ISIN_Code")%></td>
                <td><%=oRS("MarketName")%></td>
                <td><%=oRS("Curr")%></td>
            </tr>
            <%oRS.MoveNext
        Loop%>
        </tbody>