私は親子として以下を持っています
親(スクリプトとフォームタグを投稿するだけ)
<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()はまったく機能しないようです。
あなたの助けに感謝。