Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 613
  • Last Modified:

Submitting a form with "opener" as the target

I have an HTML page that displays data. On that form there's a button that opens another HTML (using window.open) that allows the user to change preferences.

The preferences HTML looks like a regular application popup. When the user presses OK, I have a very complicated form, which I want to submit.

My problem - I want the target to be the "main" page - the one that displays the data. I tried using the target property of the form in the popup page, but it doesn't work:
- I can't use "_parent" since the parent of a window created using window.open() is the window itself.
- The same goes for "_top".
- There's no target="_opener" (Using opened I can get from the popup page to the main page).
- I tried having the main page as a frame with a name. Still, having the target of the popup page point to that frame doesn't work.

One final word: I need something to work with IE5+, NN6. Thanks.
0
barakori
Asked:
barakori
  • 2
1 Solution
 
thirdCommented:
a workaround on this is to create same form from the opener window. upon the click of "ok" button the values of the popup form will be copied to the opener form then submit then close the popup window.


In the main page:

<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript"><!--
myPopup = '';

function openPopup(url) {
    myPopup = window.open(url,'popupWindow','width=640,height=480');
    if (!myPopup.opener)
         myPopup.opener = self;
}
//--></SCRIPT>
</HEAD>
<BODY>
<FORM>
<INPUT TYPE="BUTTON" VALUE="Open Popup" onClick="openPopup('popupPage.html')">
</FORM>

<FORM NAME="hiddenForm" ACTION="nextPage.html">
<INPUT TYPE="HIDDEN" NAME="myTextField">
</FORM>

</BODY>
</HTML>

 

In the popupPage.html:

<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript"><!--
function copyForm() {
    opener.document.hiddenForm.myTextField.value = document.popupForm.myTextField.value;
    opener.document.hiddenForm.submit();
    window.close();
    return false;
}
//--></SCRIPT>
</HEAD>
<BODY>
<FORM NAME="popupForm" onSubmit="return copyForm()">
<INPUT TYPE="TEXT" NAME="myTextField">
<INPUT TYPE="BUTTON" VALUE="Submit" onClick="copyForm()">
</FORM>
</BODY>
</HTML>

http://developer.irt.org/script/338.htm 
0
 
MarianneCommented:
You should state
<script>window.opener.name="main";</script>
in your popup, and correspondingly put target in form tag:
<form target=main ... >
0
 
barakoriAuthor Commented:
leveret - Excellent and elegant solution.
Kudos.
0
 
MarianneCommented:
barakori,

:-)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now