Subject: adding new listbox object to window opener
Posted By: Vash Post Date: 1/15/2005 12:24:56 AM
Hi,

Can anyone help me:

- My main window has an empty listbox. Also this main window has a link to pop up a new window(Like in yahoo, when do you want to try to inserting an address from address box).
This popup window will populate the value of the listbox in main window.


The code to populate the listbox is:

This code is in Popup window

....
this.opener.document.mainForm.myListBox.option[this.opener.document.mainForm.myListBox.length] =
new Option("NEW VALUE", "NEW NAME", false, false)
....

But The browser IE return error.

Does anyone know why and help me?
















Reply By: melvik Reply Date: 1/15/2005 3:38:13 AM
<HTML>
<HEAD>
<SCRIPT language="JavaScript">

   function addOption(optionsArray, insertAtIndex, optionText, optionValue)
   {
      var indexCounter = optionsArray.length;

      optionsArray[indexCounter] = new Option();

      for (; indexCounter >= insertAtIndex; indexCounter--)
      {
         optionsArray[indexCounter].text = optionsArray[indexCounter - 1].text;
         optionsArray[indexCounter].value = optionsArray[indexCounter -1].value;
         optionsArray[indexCounter].defaultSelected = optionsArray[indexCounter - 1].defaultSelected;
      }

      var myNewOption = new Option(optionText,optionValue);
      optionsArray[insertAtIndex] = myNewOption;

   }

   function cmdAddOption_onclick()
   {
      var form = document.myForm;
      var insertAtIndex = form.mySelectControl.selectedIndex + 1;
      var optionText = form.txtOptionText.value;
      var optionValue = form.txtOptionValue.value;
      var optionsArray = form.mySelectControl.options;
      addOption(optionsArray, insertAtIndex, optionText, optionValue);
   }
</SCRIPT>

</HEAD>
<BODY>
   <FORM NAME="myForm">
      New Option Text:
      <INPUT TYPE="text" NAME=txtOptionText>
      <BR>
      New Option Value:
      <INPUT TYPE="text" NAME=txtOptionValue>
      <BR>
      <INPUT TYPE="button" 
         VALUE="Add New Option" 
         onclick="cmdAddOption_onclick()"
         NAME=cmdAddOption>
      <BR><BR>
      <SELECT NAME=mySelectControl size=3 multiple>
         <OPTION VALUE=OneValue>One</OPTION>
         <OPTION VALUE=TwoValue>Two</OPTION>
         <OPTION VALUE=ThreeValue>Three</OPTION>
      </SELECT>
   </FORM>
</BODY>
</HTML>


this is a sample to do it(its better way I guess to help)

Always,
Hovik Melkomian.
Reply By: joefawcett Reply Date: 1/15/2005 5:09:44 AM
Because of the nature of select boxes options cannot be transferred between windows, you need something like the following in your child window:

function addOptionToOpener(Listbox, Text, Value)
{
  var oOption = self.opener.document.createElement("option");
  oOption.text = Text;
  oOption.value = Value;
  Listbox.appendChild(oOption);
}

and then call:

addOptionToOpener(self.opener.document.mainForm.myListBox, "New Text", "New Value");


--

Joe (Microsoft MVP - XML)
Reply By: omarps Reply Date: 10/10/2006 2:02:54 PM
a simpler approach...
encapsulate your the new option functionality on an opener function... then just call window.opener.my_new_option_funtion('select_id'); and that's all.

Omar

Go to topic 50639

Return to index page 152
Return to index page 151
Return to index page 150
Return to index page 149
Return to index page 148
Return to index page 147
Return to index page 146
Return to index page 145
Return to index page 144
Return to index page 143