Avatar billede jgp Nybegynder
10. juli 2002 - 14:55 Der er 7 kommentarer og
1 løsning

Fjern <option> fra <Select> box

Jeg har en <select> box som jeg godt kunne tænke mig at man skulle kunne fjerne options på:

<select size='5' name='availableuser1' onchange=removeMe(this)'>
<option value=1>User1</option>
<option value=5>User2</option>
<option value=3>User3</option>
<option value=2>User4</option>
<option value=4>User5</option>
</select>

* Options er generet af et ASP script.

Jeg bruger følgende JS kode til at prøve at fjerne <option>'s på:

function removeMe(target) {
  var boxLength = target.length;
  arrSelected = new Array();
  var count = 0;
  for (i = 0; i < boxLength; i++) {
    if (target.options[i].selected) {
      arrSelected[count] = target.options[i].value;
    }
    count++;
  }
  var x;
  for (i = 0; i < boxLength; i++) {
    for (x = 0; x < arrSelected.length; x++) {
      if (target.options[i].value == arrSelected[x]) {
        target.options[i] = null;
      }
    }
    boxLength = target.length;
  }
}

Ved tryk kan jeg fint fjerne en bruger, men næste gang jeg trykker fjerne den restenrende brugere.

Hvis jeg før denne linie:
target.options[i] = null;
indsætter
alert("test");
Så virker scriptet. Men jeg er jo ikke intereseret i at alertene noget for at det virker... Nogle der har ide om hvordan jeg undgår det? eller hvad jeg gør galt?
Avatar billede =maddog= Nybegynder
10. juli 2002 - 15:09 #1
jeg fik en unterminated string constant her:
onchange=removeMe(this)' ---> onchange='removeMe(this)'
ellers virker det ok
Avatar billede jgp Nybegynder
10. juli 2002 - 15:17 #2
hov onclick skulle det være :-)

Hmm, men nogen ide om hvordan det kan være det ikke virker hos mig så?

Glemte at sige, scriptet virker hvis man prøver at fjerne den første <option>, men ikke hvis man prøver at fjerne nogle af de andre. (stadig virker den ved første klik, men ikke ved næste)
Avatar billede =maddog= Nybegynder
10. juli 2002 - 15:26 #3
nææeh. det virker prima. der er ingen slinger heller når jeg bruger onclick. men prøv
void(target.options[i] = null);
i stedet for. bare for at have det afprøvet.
Avatar billede jgp Nybegynder
10. juli 2002 - 15:33 #4
Hmm det er alså underligt, ej heller med void virker det.

Hvilken browser/styresystem bruger du?
Jeg bruger IE5.5 Windows 2000
Avatar billede =maddog= Nybegynder
10. juli 2002 - 15:54 #5
IE6/NS7 Win98UK
Avatar billede jgp Nybegynder
11. juli 2002 - 09:47 #6
Hmm noget kunne tyde på det er en fejl i IE5.5. I min bog om JS (JavaScript Developer's Dictionary, sAms) bekrafter de at der er problemer med Remove() og add() funktionerne på <Select> objectet.

Jeg lader spørgsmålet stå åbent i et par dage, hvis nogle nu skulle kommer med en løsning. Ellers Deler Maddog og jeg pointne.
Avatar billede jgp Nybegynder
12. juli 2002 - 11:17 #7
Maddog hvis du ligger et svar så deler vi pointne :-)
Avatar billede jgp Nybegynder
12. juli 2002 - 15:38 #8
Hmm ingen respons
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