2016-04-19 8 views
1

私はHTMLフォームを作成しています。その中には、テキストボックスを提供するポップアップを作成したい入力ボックスが1つあります。これにより、より大きなテキストブロックを入力するためのスペースがユーザに与えられます。現在のコードでは、子ウィンドウ(ポップアップ)を使用して、入力したテキストを親に送り返すことができます。しかし、私はまた、親ウィンドウが子ウィンドウのテキストエリアに現在のテキストを送信する必要があります。私はいくつかの助けに感謝します。入力フィールドを編集するためのポップアップ

ここでは、この説明の目的で、入力ボックスを1つだけ簡略化したバージョンを作成しました。ここで

<HTML><HEAD></HEAD> 
<SCRIPT LANGUAGE="JavaScript"><!-- 
function openChild(file,window) { 
    childWindow=open(file,window,'resizable=no,width=200,height=400'); 
    if (childWindow.opener == null) childWindow.opener = self; 
    } 
//--></SCRIPT> 

<BODY> 
<FORM NAME="parentForm"> 
<INPUT TYPE="button" VALUE="Open child" onClick="openChild('examplejs2.html','win2')"> 
<BR><INPUT NAME="pf1" TYPE="TEXT" VALUE=""> 
</FORM></BODY></HTML> 

は、子ウィンドウからコード(ポップアップ)である:ここで

が親からのコードで、私はあなたの子フォームにはテキストエリアを見ない

<HTML><HEAD> 
<SCRIPT LANGUAGE="JavaScript"><!-- 
function updateParent() { 
    opener.document.parentForm.pf1.value = document.childForm.cf1.value; 
    opener.document.parentForm.pf2.value = document.childForm.cf2.value; 
    if (document.childForm.cf3[0].checked) 
     opener.document.parentForm.pf3[0].checked = true; 
    if (document.childForm.cf3[1].checked) 
     opener.document.parentForm.pf3[1].checked = true;  
    self.close(); 
    return false; 
} 
//--></SCRIPT> 
</HEAD><BODY> 
<FORM NAME="childForm" onSubmit="return updateParent();"> 
<BR><INPUT NAME="cf1" TYPE="TEXT" VALUE=""> 
</FORM></BODY></HTML> 

答えて

0

が、あなたのchildwindowと仮定しています

<textarea name="cf1"></textarea> 

子ウィンドウを開いた後、あなたはそれがロードされた/準備されるのを待つ必要があるかもしれません

var myVal = document.getElementsByName("pf1")[0].value; 
childWindow.document.getElementsByName("cf1")[0].value = myVal; 
1

私は質問の中で仕事のほとんどを投げつけて、別のウィンドウを使わずに(ただしポップアップを使用して)終了しました。ここではHTMLは次のとおりです。ここで

<input type="text" id="text-source" value="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."/> 
<button id="edit">Edit</button> 

<div id="edit-popup" style="display: none"> 
    <textarea id="text-edit"/> 
</div> 

は、私は時に落ち着いたJavaScriptは次のとおりです。

$("#edit").click(function() { 
     $("#text-edit").val($("#text-source").val()); 
    $("#edit-popup").dialog({ 
     height: 400, 
     width: 600, 
     modal: true, 
     buttons: { 
      "Close": function() { 
     $("#text-source").val($("#text-edit").val()); 
       $(this).dialog("close"); 
     } 
     } 
    }); 
}); 

は、アクションでそれを参照してください:https://jsfiddle.net/sazzy/5m621rLa/

+0

多分それは、私だけが、何らかの理由でテキストエリアでしたタグを閉じることができないテキストエリアタグはうまく再生されません。 。 。実行するjavascriptを得ることができなかった、他の部門の実行と非表示を引き起こした。 。 。だから私はに変更されました。 – armstb01

関連する問題