Avatar billede kornfreak Nybegynder
23. september 2001 - 12:21 Der er 11 kommentarer og
2 løsninger

Dynamisk dropdown ?

Er det muligt at tilføje/slette <option value=\"noget\">noget</option> til en selectbox via javascript ?..isåfald..hvordan ?
Avatar billede bbs Nybegynder
23. september 2001 - 12:27 #1
<center>
<form name=\"addresses\">
<p align=\"center\"><font size=\"2\" face=\"Verdana\">Vil du</font></p>  <select name=\"list\" onchange=\"update()\">
<option value=\"mailto:steffenholm@iname.com\">Sende en email til steffenholm@iname.com
<option value=\"http://www.microsoft.com\">Gå til www.microsoft.com
<option value=\"http://www.netscape.com\">Gå til www.netscape.com
<option value=\"http://www.jjferie.dk3.com\">Lej et sommerhus</select>
</form>
</center>
<p align=\"center\"><a href=\"updatelink\">Gør det!</a>
<script language=\"javascript\">

<!--  begin
pos = 9999;
for(num=0;num<document.links.length;num++) {
if (document.links[num].href.indexof(\"updatelink\") != -1) {
pos = num;
num = 5000;
  }
}
function update() {
if (pos!=9999) {
sel = document.addresses.list.selectedindex;
document.links[pos].href = document.addresses.list[sel].value;
  }
}
update();
// end -->
</script>
Avatar billede kornfreak Nybegynder
23. september 2001 - 12:30 #2
Hm det jeg prøver på er :

Jeg har:
<select name=\"noget\">
<option value=\"blabla\">blabla</option>
<option value=\"blabla\"2>blabla2</option>
</option>


Jeg vil så tilføje \"<option value=\"blabla3\">blabla3</option>\" til select boxen!

Gør overestående script det ?
Avatar billede jakoba Nybegynder
23. september 2001 - 12:31 #3
jada.

for at tilføje en ny option forenden af listen skriver du:

var tmp = document.formnavn.selectnavn.options;
tmp[tmp.length] = new Option( \"tekst\", \"value\" );

se evt her hvor selectboksen bliver grundigt masseret:
http://hjem.get2net.dk/Jakob.Aggernaes/temp/exp66097.html

mvh JakobA
Avatar billede kornfreak Nybegynder
23. september 2001 - 12:33 #4
Hvordan fjerner jeg så en option ?
Avatar billede jakoba Nybegynder
23. september 2001 - 12:41 #5
du kan fjerne den nederste med:

document.formnavn.selectnavn.options.length -= 1; // så falder den sidste ud af listen.

for at fjerne en af de andre skal den først flyttes ned til at være den sidste.

mvh JakobA
Avatar billede jakoba Nybegynder
23. september 2001 - 12:59 #6
Det er muligt man kan bruge array-funktionen splice til at fjerne options.
(jeg har ikke prøvet så jeg er ikke sikker)

document.formnavn.selectnavn.options.splice(2,1); // fjern element options[2]

prøv

Avatar billede olebole Juniormester
23. september 2001 - 18:41 #7
<ole>
Meget nemmere  =)

<form name=\"f\">
<select name=\"s\">
    <option value=\"val_0\">kyhyf_0</option>
    <option value=\"val_0\">kyhyf_1</option>
    <option value=\"val_0\">kyhyf_2</option>
</select>
</form>

<script language=\"JavaScript\">
    alert(document.f.s.options[1].text);
    document.f.s.options[1] = null;
    alert(document.f.s.options[1].text);
</script>

/mvh
</bole>
Avatar billede olebole Juniormester
23. september 2001 - 18:42 #8
hov....værdierne i de options blev vist ikke \'så forskellige\', men resultatet er det samme  =)
Avatar billede jakoba Nybegynder
23. september 2001 - 18:45 #9
Så arrayet slutter selv op. Unægtelig noget enklere :-))
Avatar billede kornfreak Nybegynder
23. september 2001 - 21:19 #10
Kan man så ikke lave en løkke der siger noget i stil med:

function sletdropdown(noget) {
  for (hver option i min dropdown) {
    if (option.value == noget) {
      slet denne option;
    }
  }
}

??
Avatar billede jakoba Nybegynder
23. september 2001 - 21:34 #11
Jo det kan man godt. men husk optione er et array og hedder options (s til slut)

function sletdropdown(noget) {
  var selo = document.formnavn.selnavn.options;
  for (var i=selo.length-1; i>=0; i-- ) {
      if ( selo[i].value = noget ) selo[i] = null;
  }
}; //end sletdropdown( string )

mvh JakobA
Avatar billede jakoba Nybegynder
23. september 2001 - 21:37 #12
ups. jeg glemte at lave == i sammenligningen

function sletdropdown(noget) {
  var selo = document.formnavn.selnavn.options;
  for (var i=selo.length-1; i>=0; i-- ) {  // for alle options
      if ( selo[i].value == noget )        // der har værdien noget
          selo[i] = null;                    // slet den option
  }
}; //end sletdropdown( string )
Avatar billede kornfreak Nybegynder
23. september 2001 - 22:42 #13
Kanon, smider lige nogen flere points for de flotte svar :)
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