Avatar billede normann Nybegynder
11. juli 2002 - 18:56 Der er 7 kommentarer og
2 løsninger

Tilføj options i en selectboks

Hej,

Jeg har et spøjst lille problem :

Jeg har en side x med en <iframe> på.
På iframe side finder jeg frem til nogle ting som jeg gerne vil have puttet i en select boks på siden x.

Jeg har gjort flg. i sourcen for iframen:

<SCRIPT>
var myObject1;
var myText ='';
var myValue='';
var opt;
var i;

myObject1 = parent.document.getElementById('itemid');
myObject1.options.length = 0;
for (i=0;i<4;i++){
    myText =''+i;
    myValue=''+i;
   
    opt = new Option(myText,myValue); 
    myObject1.add(opt,myObject1.options.length); 
}
</SCRIPT>

Dette virker fint i IE6 - men ikke i IE5. Spørgsmålet er altså hvordan det kan gøres tilsvarende i IE5 og om det overhovedet er muligt ?

Ps ! Jeg har prøvet at bruge ovenstående script på en side uden en iframe og der virker det fint også i IE5 - så det er altså ligesom parent. volder lidt problemer.

Håber der er nogle javascript hajer i farvandet derude.

-Bo
Avatar billede nikolajdu Nybegynder
11. juli 2002 - 19:27 #1
Nute herinde fra har lavet den her, der virker i alle browsere.

<html>
<script>

var ns4x = document.layers?true:false;
var selIndex;

function deleteAll(){
  document.frm.sel.options.length = 0;
            // frembringer resultatet i Netscape 4.x
        if( ns4x ){
          history.go(0);
        }
}

function deleteSelected(){
  selIndex = document.frm.sel.selectedIndex;
    document.frm.sel.options[ selIndex ] = null;
            // frembringer resultatet i Netscape 4.x
        if( ns4x ){
          history.go(0);
        }
}

function modifySelected(){
  document.frm.but.onclick = executeModify;
  selElem = document.frm.sel.options[ document.frm.sel.selectedIndex ];
    txt = selElem.text;
    val = selElem.value;
    document.frm.val.value = val;
    document.frm.txt.value = txt;
}

function executeModify(){
  selElem = document.frm.sel.options[ document.frm.sel.selectedIndex ];
    selElem.text  = document.frm.txt.value;
    selElem.value = document.frm.val.value;
    document.frm.txt.value = '';
    document.frm.val.value = '';
    document.frm.but.onclick = addNew;
            // frembringer resultatet i Netscape 4.x
        if( ns4x ){
          history.go(0);
        }
}

function addNew(){
  var txt = document.frm.txt.value;
    var val = document.frm.val.value;
    document.frm.sel.options[ document.frm.sel.options.length ] = new Option( txt, val );
            // frembringer resultatet i Netscape 4.x
        if( ns4x ){
          history.go(0);
        }
}


</script>
<body>
<form name="frm" method="get" action="">
<select name="sel" size="5">
  <option value=""></option>
  <option value="Verdi 1">Verdi 1</option>
  <option value="Verdi 2">Verdi 2</option>
  <option value="Verdi 3">Verdi 3</option>
  <option value="Verdi 4">Verdi 4</option>
</select>
<br><br>
<li><a href="java script:deleteAll()">Slet Alle</a></li>
<li><a href="java script:modifySelected()">Rediger Markerte</a> (velg en option, klikk på link, skriv i felt og klikk på knapp)</li>
<li><a href="java script:deleteSelected()">Slet Markerte</a></li>
<li>Legg til nye (skriv i felt og klikk på knapp)</li><br><br>
value: <input type="text" name="val"><br>
text: <input type="text" name="txt"><br>
<input type="button" value=" Utfør " onClick="addNew();" name="but">
</form>
</body></html>

/Nikolaj
Avatar billede normann Nybegynder
11. juli 2002 - 20:09 #2
Desværre virker det ikke når selectboksen tilgås vha. parent !
Avatar billede nikolajdu Nybegynder
11. juli 2002 - 20:12 #3
Det må være fordi du gør noget forkert så, men hvad ved jeg jo ikke :))
Avatar billede normann Nybegynder
11. juli 2002 - 20:20 #4
jeg tror det ikke - jeg skriver jo det er et spøjst problem.
Det virker fint når det kører på samme side - men putter jeg det i en iframe og forsøger at opdatere en selectboks på parentsiden så går det galt i IE5
Avatar billede nikolajdu Nybegynder
05. august 2002 - 07:41 #5
Fik du løst problemet??

/Nikolaj
Avatar billede normann Nybegynder
05. august 2002 - 10:23 #6
Nej ikke på den rigtige måde - men jeg udskriver alle muligheder i et array som jeg så søger i stedetfor.
Avatar billede nikolajdu Nybegynder
05. august 2002 - 10:24 #7
ok :)
Avatar billede normann Nybegynder
05. august 2002 - 10:24 #8
Måske kunne det virke hvis man istedetfor at kalde direkte til parent.selectboks, så kaldte en funktion på parentsiden som ordnede selectboksen.
Avatar billede nikolajdu Nybegynder
05. august 2002 - 10:27 #9
tja det er sikkert en mulighed :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester