Avatar billede barfoed Nybegynder
04. oktober 2001 - 23:58 Der er 6 kommentarer og
1 løsning

søgning i Select fra et text-input

hej alle!

Jeg er sku ikke en gang sikker på dette kan lade sig gøre men:

Hvis man nu forestiller sig at man har følgende:

<form name=\"form1\">
<input type=\"text\" name=\"input1\">
<select name=\"sel1\">   
  <option value=\"1\">Gris</option>
  <option value=\"2\">Ko</option>
  <option value=\"3\">Ged</option>
  <option value=\"4\">Får</option>
  <option value=\"5\">Høne</option>
              osv.
              osv...

</select>
</form>

Og man ved at intaste en streng i inputen får valgt
den option hvor den tekst streng ingår..

Altså hvis man taster gris, vælges første punkt i selecten.

Men den skulle også gerne vælge den sidste option hvis man tastede \"øne\".

En knap kan evt. godt indrages, hvis det er nødvendigt!


Har selv siddet og leget lidt med det..
men jeg kom ikke rigtig ud af stedet!

Så jeg håber der sidder en god scripter der ude,
som kan komme med en løsning ;)


Barfoed
Avatar billede jakoba Nybegynder
05. oktober 2001 - 00:12 #1
Joe, det er ikke så svært.
her sker valget imens man taster.

i head:
<script language=\'javascript\'> <!--

function selFind ( frm, str ) {
    var o = frm.sel1.options;
    for ( var i=0; o.length>i; i++ )
        if ( 0[i].text.indexOf( str ) >= 0 ) break;
    if ( o.length > i )
        frm.sel1.selectedIndex = i;
    else
        frm.sel1.selectedIndex = 0;
}; //end selFind ( Form object )

// --> </script>

i din form skriver du så:
<form name=\"form1\">
<input type=\"text\" name=\"input1\" onkeyup=\"selFind(this.form, this.value)\">
<select name=\"sel1\">
  <option> - - - - - - - </option> <!-- en ikke valgbar først --> 
  <option value=\"1\">Gris</option>
  <option value=\"2\">Ko</option>
  <option value=\"3\">Ged</option>
  <option value=\"4\">Får</option>
  <option value=\"5\">Høne</option>
              osv.
              osv...

</select>
</form>

mvh JakobA
Avatar billede jakoba Nybegynder
05. oktober 2001 - 00:14 #2
Ups. jeg stavede o forkert i linien
        if ( 0[i].text.indexOf( str ) >= 0 ) break;
det skal være
        if ( o[i].text.indexOf( str ) >= 0 ) break;
Avatar billede nute Nybegynder
05. oktober 2001 - 00:18 #3
jakoba >> har du testet ditt eget script ?

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">

<html>
<head>
    <title>Untitled</title>
    <SCRIPT LANGUAGE=\"JavaScript\" TYPE=\"text/javascript\">
        <!--
        var val, len, findValue;
        function findElem(elem){
          val = elem.value;
            len = val.length;
            for( i = 0; i < document.form1.sel1.options.length; i++ ){
              findValue = document.form1.sel1.options[ i ].value;
              if( findValue.substr( 0, len ).toLowerCase() == val.toLowerCase() ) {
                  document.form1.sel1.selectedIndex = i;
                    break;
                }
            }
        }
        //-->
        </SCRIPT>
</head>

<body>
<form name=\"form1\">
<input type=\"text\" name=\"input1\" onkeyup=\"findElem( this );\">
<select name=\"sel1\">   
  <option value=\"Gris\">Gris</option>
  <option value=\"Ko\">Ko</option>
    <option value=\"Kylling\">Kylling</option>
  <option value=\"Ged\">Ged</option>
  <option value=\"Får\">Får</option>
  <option value=\"Høne\">Høne</option>
</select>
</form>
</body>
</html>

/nute
Avatar billede jakoba Nybegynder
05. oktober 2001 - 00:41 #4
nute >> ikke før nu. og kun i NS4.7 og IE4.0
skulle søgning ikke være case-sensitiv?

http://hjem.get2net.dk/Jakob.Aggernaes/temp/exp117382.html
Avatar billede nute Nybegynder
05. oktober 2001 - 00:48 #5
jakoba >> hmmm... Disse linjer:  \"Og man ved at intaste en streng i inputen får valgt den option hvor den tekst streng ingår..Altså hvis man taster gris, vælges første punkt i selecten\", tilsier at den *ikke* skal være case sensitiv.

Til gjengjeld har så du fått øye på en ting som ikke jeg fikk med meg.  Denne setning: \"Men den skulle også gerne vælge den sidste option hvis man tastede \"øne\".\" har gått meg hus forbi :) din indexOf() løsning er *klart* det som barfoed er ute etter

Det jeg henviste til (om du hadde testet) var en feilposting fra min side. Jeg trodde du hadde gjort noe *helt* annet enn det du hadde gjort :)

/nute
Avatar billede jakoba Nybegynder
05. oktober 2001 - 01:13 #6
Ok, jeg retter lige.
Avatar billede barfoed Nybegynder
05. oktober 2001 - 23:07 #7
I er nogle flinke gutter!:)

At se den flyve ned igenem 120 options i en select er smukt!

Takker mange gange

Barfoed
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