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
Annonceindlæg fra Partnertekst
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
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;
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
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
05. oktober 2001 - 01:13
#6
Ok, jeg retter lige.
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
Vi tilbyder markedets bedste kurser inden for webudvikling