将选定的值从子窗口传递到父窗口

时间:2018-08-26 11:44:58

标签: javascript html

我有一个问题,我有2个按钮,并且它们有2个不同的值和不同的ID(比如说Button A和Button B),我想确保当我单击Button A时,值填充为FORM C OR当我点击按钮B时,值填充为FORM C(来自窗口父级的表单C和来自子父级的按钮A和B)。但是对于我来说,如果我单击按钮A,则传递给表单C的值就是按钮B的值。 这是代码:

  

parent.html

<form method='post' action='' name='f1'>
<table border=0 cellpadding=0 cellspacing=0 width=550>
<tr>
    <td ><font size="2" face='Verdana'>Your Name</font><input type="text" name="p_name"  size='8'> 
<a href="javascript:void(0);" NAME="My Window Name" title=" My title here " onClick='window.open("child.php","Ratting", "width=550,height=170,left=150,top=200,toolbar=1,status=1,");'>Click here to open the child window</a> 


</td></tr>
</table></form>
  

child.html

<html>
<head>
<title>(Type a title for your page here)</title>
</head>

<body >

<form name="frm" method="post" action=''>
<table border='0' cellpadding='0' cellspacing='0' width='250'>


 <tr><td align="center">  Your name <input type="button" name="c_name" value="A" onclick="post_value();">


  </td><td align="center">  Your name <input type="button" name="c_name2" value="B" onclick="post_value();">


  </td>

  </tr>

<script langauge="javascript">
function post_value(){
opener.document.f1.p_name.value = document.frm.c_name.value;
opener.document.f1.p_name.value = document.frm.c_name2.value;
 self.close();
}
</script>
</table></form>

1 个答案:

答案 0 :(得分:0)

在您的功能中,您需要检测单击的按钮。因此,我通过向函数传递信号来更改按钮的行为:

在按钮上设置数据:

<input type="button" name="c_name" value="A" onclick="post_value('a');">
<input type="button" name="c_name2" value="B" onclick="post_value('b');">

接收有关功能的数据:

function post_value(button){
if (button=="a"){
opener.document.f1.p_name.value = document.frm.c_name.value;
}
if (button=="b"){
opener.document.f1.p_name.value = document.frm.c_name2.value;
}
 self.close();
}

作为更好的解决方案,您甚至可以将对象(按钮)本身传递给函数,并在没有IF / THEN块且不使用ID的情况下提取值:

在按钮上设置数据:

<input type="button" name="c_name" value="A" onclick="post_value(this);">
<input type="button" name="c_name2" value="B" onclick="post_value(this);">

接收有关功能的数据:

function post_value(button){
opener.document.f1.p_name.value = button.value;
 self.close();
}