Avatar billede spuncut Nybegynder
17. november 2004 - 14:36 Der er 12 kommentarer og
2 løsninger

Ændring af options-rækkefølge i select

Jeg ønsker at ændre rækkefølgen af options i en select og så skrive den nye rækkefølge over i en anden select.
Jeg vil derfor gerne have text/value over i et par arrays.
Menøø.. mit javascript er vist blevet lidt rustent, så jeg håber at der er nogen derude som vil give mig en hånd.
Jeg får fejl når jeg vil tilskrive text/value til array'et

atxt(Current) = eval(object.sel1.options[Current].text);

..please..

Her er dokumentet :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Select Sorter</title>
    <script>
        var atxt = new Array(4);
        var aval = new Array(4);
        function getopt(object) {
            for (var Current=0;Current < object.sel1.options.length;Current++) {
                var text = eval('object.currentText' + Current);
                var value = eval('object.currentValue' + Current);
                //alert(object.sel1.options[Current].text + ' : ' + object.sel1.options[Current].value);
                document.formName1.sel2.options[Current] = new Option(object.sel1.options[Current].text, object.sel1.options[Current].value);
               
                // Fejl herunder
                //atxt(Current) = eval(object.sel1.options[Current].text);
                //aval(Current) = object.sel1.options[Current].value;
            }
        }
    </script>
</head>
<body>
    <FORM NAME="formName1" onSubmit="return false;">
        <SELECT NAME="sel1" MULTIPLE>
            <option value="1">Anders</option>
            <option value="2">Bente</option>
            <option value="3">Camilla</option>
            <option value="4">Dennis</option>
        </SELECT>
        <SELECT NAME="sel2" MULTIPLE size="4">
        </SELECT>
        <INPUT TYPE="button" VALUE="Copy" onClick="getopt(this.form);return false;">
    </FORM>
</body>
</html>


MVH HHH
Avatar billede olebole Juniormester
17. november 2004 - 14:47 #1
<ole>

    <script type="text/javascript">
        var atxt = new Array(4);
        var aval = new Array(4);
        function getopt(object) {
            var txt, val;
            for (var Current=0;Current < object.sel1.options.length;Current++) {
                txt = object.sel1.options[Current].text;
                val = object.sel1.options[Current].value;
                document.formName1.sel2.options[Current] = new Option(txt, val);
               
                // Ingen fejl herunder  ;o)
                atxt[Current] = txt;
                aval[Current] = val;
            }
        }
    </script>

/mvh
</bole>
Avatar billede sjh Nybegynder
17. november 2004 - 14:57 #2
du behøber ikke at skrive .... new Array(4);

bare sådan:

  var atxt = new Array();
  var aval = new Array();

og så er det ikke ( ) men [ ] du skal bruge..

  atxt[Current] = object.sel1.options[Current].text;
  aval[Current] = object.sel1.options[Current].value;
Avatar billede spuncut Nybegynder
17. november 2004 - 15:06 #3
Mange tak...
Avatar billede sjh Nybegynder
17. november 2004 - 15:07 #4
selv tak :-)
Avatar billede olebole Juniormester
17. november 2004 - 15:22 #5
... det er nu absolut ingen fejl at dimensionere array'et fra start - men det er ikke tvingende nødvendigt i JavaScript  :)
Avatar billede sjh Nybegynder
17. november 2004 - 15:27 #6
Nej men jeg kender Spuncut.. så spørg han bare hvordan men laver det hvis der er 5,6,7,8 :D
Avatar billede olebole Juniormester
17. november 2004 - 15:48 #7
*LooL* Okay, spuncut ... kast din monitor i toilettet, brænd din harddisk og æd din kat, hvis den læste over skulderen ... glem, hvad jeg skrev  ;D
Avatar billede olebole Juniormester
17. november 2004 - 15:50 #8
... and don't even *think* about reDim() ...!!!  :)
Avatar billede spuncut Nybegynder
17. november 2004 - 16:42 #9
Den er god med jer....nu er der noget ASP indblandet, så egentlig ved jeg på forhånd hvor mange items der er ... men takker alligevel...
Avatar billede spuncut Nybegynder
17. november 2004 - 16:45 #10
var atxt = new Array(<%= Number-of-items%>); ....hehehhe
Avatar billede sjh Nybegynder
17. november 2004 - 16:48 #11
Ja men hvorfor lave loget kode som ikke er nødvendigt ;)
Avatar billede spuncut Nybegynder
17. november 2004 - 16:52 #12
...siger ham som aldrig kan finde på at bruge en variant eller en collection i sine vb-programmer...  ;o)
Avatar billede sjh Nybegynder
17. november 2004 - 17:01 #13
Ja nu er du ved at lære det.. :D

det er også ok, vi kan jo ikke allesammen være eksperter :D
Avatar billede olebole Juniormester
17. november 2004 - 17:23 #14
Skriver man flere sprog, _må_ det ske engang imellem, that you etwas kludder skriver  ;o)
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