[JS] Vanuit popup veld aan select toevoegen? Ook in IE?

Pagina: 1
Acties:
  • 105 views sinds 30-01-2008
  • Reageer

  • PanMan
  • Registratie: November 1999
  • Laatst online: 12:05
Matched: javascript, option, popup
Hoi!
Ik heb een (vrij uitgebreide) form. Met daarin o.a. een select met steden. Nu wil ik de mogelijkheid hebben om een stad toe te voegen, zonder de form te moeten reloaden (nogal vervelend als iemand hem al half heeft ingevuld). En dat deze stad dan gelijk geselecteerd is. Dus dacht ik aan een popup, met Javascript.
Ik heb inmiddels onderstaande code geproduceerd, en die doet het in FF. Maar helaas nog niet in IE..
code:
1
2
3
4
5
6
<script>
  var opt = new Option('Stadnaam', '12345');
  var sel = top.opener.document.formpje.plaats_id;
  sel.options[sel.options.length] = opt;
top.opener.document.formpje.plaats_id.value='12345';
</script>

(die Stadnaam en 12345 worden dynamisch ingevuld door PHP, dat is geen probleem).
Iemand idee'en hoe ik hier verder mee kan komen? Het is vast heel simpel, maar ik ben niet echt een JS guru.... IE zegt dat de server een exeption heeft gegooid (lijkt me sterk, de server doet niets met JS...).

Where a calculator on the ENIAC is equipped with 18,000 vacuum tubes and weighs 30 tons, computers in the future may have only 1,000 vacuum tubes and weigh only 1.5 tons.
– Popular Mechanics, March 1949


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 16:04

crisp

Devver

Pixelated

Geen matches
probeer eens op je laatste regel ipv de value een waarde te geven de selectedIndex te gebruiken

Intentionally left blank


  • PanMan
  • Registratie: November 1999
  • Laatst online: 12:05
Matched: popup
heb nu top.opener.document.formpje.plaats_id.selectedindex='123456'; toegevoegd.
Maar kom er net achter dat in IE het element helemaal niet wordt toegevoegd. Dan is er dus ook niets te selecteren.
Volgens mij (maar zoveel weet ik niet van JS), bestaat het pad top.opener.document.formpje.plaats_id; niet, in IE. Wel in FF, daar werkt het prima.
Doe dit dus vanuit een popup window...
Iemand nog goede hints?

Where a calculator on the ENIAC is equipped with 18,000 vacuum tubes and weighs 30 tons, computers in the future may have only 1,000 vacuum tubes and weigh only 1.5 tons.
– Popular Mechanics, March 1949


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 16:04

crisp

Devver

Pixelated

Matched: javascript, option
een selectedIndex bevat een index en geen value; in jouw geval:
HTML:
1
2
3
4
5
6
7
8
9
10
<script type="text/javascript">
function addOption()
{
  var opt = new Option('Stadnaam', '12345');
  var sel = opener.document.forms['formpje'].elements['plaats_id'];
  var index = sel.options.length;
  sel.options[index] = opt;
  sel.selectedIndex = index;
}
</script>

Intentionally left blank


  • PanMan
  • Registratie: November 1999
  • Laatst online: 12:05
Matched: option
Hrmz. Ik krijg nogsteeds een error, op regel 10. (server threw an exeption..)
Dat is:
code:
1
sel.options[index] = opt;

En er wordt niets toegevoegd, laat staan geselecteerd.
Nog andere tips, ook hoe ik eventueel beter kan debuggen?

Edit: Dit geeft iig een undefined:
alert(opener.document.forms['formpje'].elements['plaats_id'].selectedindex);
Terwijl ik op z'n minst een getal oid zou verwachten...

[ Voor 27% gewijzigd door PanMan op 06-03-2005 17:51 . Reden: alert toegevoegd. ]

Where a calculator on the ENIAC is equipped with 18,000 vacuum tubes and weighs 30 tons, computers in the future may have only 1,000 vacuum tubes and weigh only 1.5 tons.
– Popular Mechanics, March 1949


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 16:04

crisp

Devver

Pixelated

Geen matches
kan je misschien ook laten zien hoe je form er uitziet, of nog beter: kan je een testcase online zetten?

Intentionally left blank


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 16:04

crisp

Devver

Pixelated

Matched: toevoegen, option, popup
wacht, ik herinner me ineens dat het een bekende bug is in IE dat je vanuit popups geen options aan een select kan toevoegen. Je kan dit omzeilen door vanuit de popup een functie in de opener aan te roepen, en die de optie te laten toevoegen.
voorbeeld

Intentionally left blank


  • PanMan
  • Registratie: November 1999
  • Laatst online: 12:05
Geen matches
Woei.
Het werkt eindelijk, precies zoals ik wou. En zowel in IE als FF
Thnx a lot, Crisp! Als ik jou, en je bugkennis niet had.. :).

Where a calculator on the ENIAC is equipped with 18,000 vacuum tubes and weighs 30 tons, computers in the future may have only 1,000 vacuum tubes and weigh only 1.5 tons.
– Popular Mechanics, March 1949

Pagina: 1