Avatar billede mathiasiversen Nybegynder
17. december 2001 - 11:27 Der er 3 kommentarer og
1 løsning

selectbox - søge med flercifret tal!

Hejsa

Jeg har et lille irreterende problem!
Jeg har en selectbox med samtlige postnumre. Hvis jeg f.eks taster 1 så hopper den ned til første der starter med 1, hvis jeg trykker 1 en gang til hopper den til det næste osv. Hvis man nu gerne vil have postnr. 1256, så skal man trykke 1 rimelig mange gange. Hvordan kan jeg gøre sådan at selectboxen opfatter mine indtastninger sammenhængende, så jeg i princippet bare kunne taste 1 2 5 6 og så hoppe direkte ned til postnr. 1256? Det må godt være sådan at det er inden for et vist tidsrum!

/Mathias
Avatar billede jakoba Nybegynder
17. december 2001 - 12:02 #1

function findIOptions( sel, txt ) {
    var re = new RegExp( \"^\"+txt );
    for ( var i=0; i<sel.options.length; i++ ) {
        if ( re.test( sel.options[i].text ) ) break;
    }
    if ( i < sel.options.length )
        sel.selectedIndex = i;
    else
        sel.selectedIndex = -1;
}; //end findIOptions( select objekt, string ) ->

mvh JakobA
Avatar billede mathiasiversen Nybegynder
18. december 2001 - 16:59 #2
hvor skal denne kode ind i forhold til selctboxen og hvad skal jeg skrive ved selectboxen for at det virker?
Avatar billede mathiasiversen Nybegynder
18. december 2001 - 17:00 #3
ups, det var ikke meningen at acceptere, men kan du så ikke lige hjælpe mig med det andet jeg spurgte om, så må vi håbe at det virker!
Avatar billede jakoba Nybegynder
18. december 2001 - 18:08 #4

i det felt hvor der tastes ind skal du have en onkeyup event:

<input type=\'text\' value=\"\"
  onkeyup=\"findIOptions( this.form.sboxnavn, this.value );\">

og din selectboks skal så have et navn (her bruger jeg \'sboxnavn\')

<select name=\'sboxnavn\'>
  <option>1001</option>
...
</select>

scriptet sktiver du opp i head i en <script sektion:

<script type=\'text/javascript\'>

function findIOptions( sel, txt ) {
    var re = new RegExp( \"^\"+txt );
    for ( var i=0; i<sel.options.length; i++ ) {
        if ( re.test( sel.options[i].text ) ) break;
    }
    if ( i < sel.options.length )
        sel.selectedIndex = i;
    else
        sel.selectedIndex = -1;
}; //end findIOptions( select objekt, string )

</script>

mvh JakobA

tak for pts. spørg evt igen hvis det ikke lykkes.
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