Avatar billede krab Praktikant
09. oktober 2005 - 16:57 Der er 10 kommentarer og
1 løsning

Mere end 'et' ID ?

Hej eksperter..

Jeg er ikk li en haj til Javascript.. jeg har et script der ser således ud::

kan ses i brug her: http://nicetrade.dk/try.html

Selve scriptet virker fint, jeg skal bare bruge et ID udover teksten, altså nede i selectbox'en skal valuen være et ID.. det må kunne bygges ind i scriptet, er bare ikke helt klar over hvordan dsv..
Håber i kan hjælpe.

<script type="text/javascript">
valg = new Array();
valg[valg.length]='prøve';
valg[valg.length]='nemlig';
valg[valg.length]='flere';
valg.sort();

function autoComplete (field, select, property, forcematch) {
    var found = false;
    for (var i = 0; i < select.options.length; i++) {
    if (select.options[i][property].toUpperCase().indexOf(field.value.toUpperCase()) == 0) {
        found=true; break;
        }
    }
    if (found) { select.selectedIndex = i; }
    else { select.selectedIndex = -1; }
    if (field.createTextRange) {
        if (forcematch && !found) {
            field.value=field.value.substring(0,field.value.length-1);
            return;
            }
        var cursorKeys ="8;46;37;38;39;40;33;34;35;36;45;";
        if (cursorKeys.indexOf(event.keyCode+";") == -1) {
            var r1 = field.createTextRange();
            var oldValue = r1.text;
            var newValue = found ? select.options[i][property] : oldValue;
            if (newValue != field.value) {
                field.value = newValue;
                var rNew = field.createTextRange();
                rNew.moveStart('character', oldValue.length) ;
                rNew.select();
                }
            }
        }
    }

</script>
    <form name="frm">
   

    <INPUT TYPE="text" NAME="sel" VALUE="" ONKEYUP="autoComplete(this,this.form.options,'value',true)" size="30">
    <br>
    <SELECT NAME="options" size="30"
        onChange="this.form.sel.value=this.options[this.selectedIndex].value">
        <script type="text/javascript">
            for (i = 0; i < valg.length; i++)
            document.write('<option value="' + valg[i] + '">' + valg[i] + '</option>');
        </script>
    </SELECT>

    </form>
Avatar billede softspot Forsker
09. oktober 2005 - 17:05 #1
Du kunne lave et 2D-array, hvor det ene element var teksten og det andet var id.

valg = new Array();
valg[valg.length]=['prøve',1];
valg[valg.length]=['nemlig',2];
valg[valg.length]=['flere',3];
valg.sort();


og så kunne du lave genereringen af SELECT-kontrollen lidt om.

    <SELECT NAME="options" size="30"
        onChange="this.form.sel.value=this.options[this.selectedIndex].value">
        <script type="text/javascript">
            for (i = 0; i < valg.length; i++)
            document.write('<option value="' + valg[i][1] + '">' + valg[i][0] + '</option>');
        </script>
    </SELECT>
Avatar billede krab Praktikant
09. oktober 2005 - 17:19 #2
Hej... tak for forslaget.., men virker måske ikke helt som jeg havde tænkt mig.. men det med ID'et er helt perfekt. problemet er bare når du nu vælger et objekt skriver den id'et i box'en for oven?

Har lagt det nye exempel op igen: http://nicetrade.dk/try.html
Avatar billede softspot Forsker
09. oktober 2005 - 17:26 #3
Så kan jeg næsten gætte at det er teksten du vil have skrevet i box'en for oven...(?)

    <SELECT NAME="options" size="30"
        onChange="this.form.sel.value=this.options[this.selectedIndex].text">
        <script type="text/javascript">
            for (i = 0; i < valg.length; i++)
            document.write('<option value="' + valg[i][1] + '">' + valg[i][0] + '</option>');
        </script>
    </SELECT>
Avatar billede krab Praktikant
09. oktober 2005 - 17:29 #4
Uhh ja, det var jo nettop det... du er gud tak for hjælpen..!! Sender du li et svar, så jeg ka gi dig de velfortjente point ..
Avatar billede krab Praktikant
09. oktober 2005 - 17:31 #5
Nej li 2 sek.. Det virker ikke helt endnu :( ... Når man skriver i text feltet for over, skal den jo gerne søge ned i array'et .. det virkede fint til at starte med :)..
Avatar billede krab Praktikant
09. oktober 2005 - 17:33 #6
Humm.. fik det selv til at virke.. tak for hjælpen..
Avatar billede krab Praktikant
09. oktober 2005 - 17:33 #7
Nej ok.. ikke helt alligevel.., øv, man ka ikke skrive i feltet :(
Avatar billede softspot Forsker
09. oktober 2005 - 17:34 #8
Mon ikke det er den her der skal ændres

  <INPUT TYPE="text" NAME="sel" VALUE="" ONKEYUP="autoComplete(this,this.form.options,'text',true)" size="30">
Avatar billede krab Praktikant
09. oktober 2005 - 17:36 #9
Perfekt!! :) 1000 tak..
Avatar billede softspot Forsker
09. oktober 2005 - 17:38 #10
Velbekomme :)
Avatar billede softspot Forsker
09. oktober 2005 - 17:40 #11
Tak for point :)
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