0

私は親子として以下を持っています

親(スクリプトとフォームタグを投稿するだけ)

<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>

子は次のようになります(もう一度、スクリプトと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()はまったく機能しないようです。

あなたの助けに感謝。

4

1 に答える 1

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>
于 2012-10-17T07:39:02.843 に答える