Avatar billede no_doubt Nybegynder
29. juli 2003 - 16:41 Der er 26 kommentarer og
1 løsning

Søg på drop down value

Hvordan ville et script som kunne følgende se ud

Man har en tekstboks, man skriver

is

I en dropdown boks  står

Lars
Torben
Lis
Eva

Værdierne er
Lars = benny
Torben = test
Lis = lanse
Eva = is

Skriver man så is i en tekst boks markere den Eva.
Avatar billede roenving Novice
29. juli 2003 - 16:51 #1
function markerOption(f,txt){
  sel = f.minSelect;
  for(i=0;i<sel.options.length;i++){
    if(txt==sel.options[i].value){
      sel.selectedIndex=i;
      break;
    }
  }
}


og kaldes fra en onchange i en textbox i en form:

<form>
<select name="minSelect">
<option value="benny">Lars</option>
...
</select>
<input type="text" onchange="markerOption(this.form,this.value);">
</form>

-- ganske utestet
Avatar billede grunken Nybegynder
29. juli 2003 - 16:58 #2
<script type="text/javascript">
function soeg(e){
for (i=0;i<e.sel.length;i++){
if (e.sel[i].value == e.tex.value)e.sel.selectedIndex=i;
}}
</script>

<form>
<input name="tex" type="text" onkeyup="soeg(this.form);">
<select name="sel">
<option value="benny">Lars</option>
<option value="test">Torben</option>
<option value="lanse">Lis</option>
<option value="is">Eva</option>
</select>

altid for sent på den!
Avatar billede no_doubt Nybegynder
29. juli 2003 - 17:03 #3
<form>
<input type="text" onchange="soeg(this.form,this.value);" size="20" name="e">
<script type="text/javascript">
function soeg(e){
for (i=0;i<e.sel.length;i++){
if (e.sel[i].value == e.tex.value)e.sel.selectedIndex=i;
}}
</script>
<br>
<select class="felter" onchange="parent.liste_change(this);" multiple size="14" name="e">
            <option value="+4521805752,2162">Mark</option>
            <option value="+4523356243,2161">Kewin</option>
          </select>
</form>

den ser sådan her ud..

I teorien skal jeg kun skrive 22423530 eller +4522423530 også skal den markere mark.. men det virker ikke rigtigt.
Avatar billede roenving Novice
29. juli 2003 - 17:03 #4
-- og du var da meget sent på den ?-)

-- men du prøvede måske dit svar før du svarede *g*

-- og så har du brugt onkeyup, hvilket giver en forskel, nemlig en slags progressiv søgning ...
Avatar billede roenving Novice
29. juli 2003 - 17:05 #5
Så skal den denne vej:
if (e.sel[i].value.indexOf(e.tex.value)>-1)e.sel.selectedIndex=i;
Avatar billede grunken Nybegynder
29. juli 2003 - 17:06 #6
nøh roenving, min mail checker kun hver halve time *G* ;D
Avatar billede grunken Nybegynder
29. juli 2003 - 17:06 #7
og ja ;)
Avatar billede no_doubt Nybegynder
29. juli 2003 - 17:13 #8
Jeg har igen brugt
<script type="text/javascript">
function markerOption(f,txt){
  sel = f.minSelect;
  for(i=0;i<sel.options.length;i++){
    if(txt==sel.options[i].value){
      sel.selectedIndex=i;
      break;
    }
  }
}
</script>
Men alt efter kommaet giver problemer..
det samme med +45 eller kan man ligge ind at den automatisk skal sætte det foran inden den vælger altså uden der behøves at stå +45 i feltet.
Avatar billede roenving Novice
29. juli 2003 - 17:18 #9
<form>
<input type="text" onkeyup="soeg(this.form,this.value);" size="20" name="minInput">
<script type="text/javascript">
function soeg(f,txt){
    for (i=0;f.sel.length>1;i++){
        if (f.sel.options[i].value.indexOf(txt)>-1){
            f.sel.selectedIndex=i;
            break;
        }
    }
}
</script>
<br>
<select name="sel" class="felter" onchange="parent.liste_change(this);" multiple size="14" name="e">
            <option value="+4521805752,2162">Mark</option>
            <option value="+4523356243,2161">Kewin</option>
          </select>
</form>
Avatar billede no_doubt Nybegynder
29. juli 2003 - 17:26 #10
Avatar billede no_doubt Nybegynder
29. juli 2003 - 17:30 #11
Hvordan kommer jeg om fejlen ved +45 skal skrives foran..
Avatar billede no_doubt Nybegynder
29. juli 2003 - 17:32 #12
se siden nu.. man vælger landekoden for der efter at søge hvordan skal javascript delen så se ud.
Avatar billede roenving Novice
29. juli 2003 - 17:33 #13
En lille fejl i denne:
for (i=0;f.sel.length>1;i++){

Skal være sådan:

for (i=0;f.sel.length>i;i++){
Avatar billede no_doubt Nybegynder
29. juli 2003 - 17:35 #14
Hvad med fejlen den melder når der ikke findes et nummer ?
Avatar billede roenving Novice
29. juli 2003 - 17:37 #15
er klaret med ovenstående ...

Du skal kunne lave en fuldt progressiv søgning, hvis den ikke finder noget kan man jo godt udvide scriptet, men nu tager den bare og bruger den sidste udgave som var gyldig ...
Avatar billede no_doubt Nybegynder
29. juli 2003 - 17:37 #16
det var så den.. tak ligger du/i er svar
Avatar billede no_doubt Nybegynder
29. juli 2003 - 17:38 #17
jeg er ikke med på din sidste besked men det er sikkert rigtigt.
Avatar billede roenving Novice
29. juli 2003 - 17:40 #18
hvis du f.eks. taster 2656 matcher den på nummeret Randi har (medarb.nr. ?-), men fortsætter du med at taste ind kan den ikke finde matches, og ændrer derfor ikke valget ...
Avatar billede no_doubt Nybegynder
29. juli 2003 - 17:42 #19
Jamen hvordan kan det være at den med 11 i søgefeltet vælger louise.
Avatar billede roenving Novice
29. juli 2003 - 17:48 #20
Fordi der midt inde i hendes telefonnummer er to 1-taller efter hinanden ...

Hvis du vil have den sådan, at den kun matcher på rigtige telefonnumre skal den bygges lidt anderledes, men ikke voldsomt ...

-- og problemet findes ikke hvis du kræver at man f.eks. taster 8 cifre !-)
Avatar billede no_doubt Nybegynder
29. juli 2003 - 17:49 #21
Hvordan skal det bygges op så ?
Avatar billede roenving Novice
29. juli 2003 - 18:10 #22
Men nu bygger den på en forudsætning om, at et almindeligt telefonnummer (uden landekode) er på 8 cifre -- holder den ?-)

Landekoden er jo 3-cifret f.eks. +37x -- men lige der var der 8 cifre, så det kunne du ...

Men nu accepterer den, at strengen starter forfra (altså landekode incl. +-tegnet), på den plads, som er nr. 3 eller 4 afhængig af hvor kommaet er eller på pladsen efter kommaet ...

<script type="text/javascript">
function soeg(f,txt){
for (i=0;f.sel.length>i;i++){
idx = f.sel.options[i].value.indexOf(txt);
idxk = f.sel.options[i].value.indexOf(",");
if (idx==0||idx==idxk-8||idx==idxk+1){
f.sel.selectedIndex=i;
break;
}
}
}
</script>
Avatar billede no_doubt Nybegynder
29. juli 2003 - 18:13 #23
jamen hvis jeg nu laver en dropdown boks med lande koder ville det så ikke hjælpe en del, de side 3 eller 4 tegn og kommaet skal skæres af.
Avatar billede roenving Novice
29. juli 2003 - 18:22 #24
Jamen så skal vi jo også sikre os at de hører sammen, hvis en f.eks. taster +37428 ...
Avatar billede no_doubt Nybegynder
29. juli 2003 - 18:45 #25
nej personen vælger jo bare landekoden og derefter tlf nummeret
Avatar billede no_doubt Nybegynder
29. juli 2003 - 23:27 #26
er du der..
Avatar billede roenving Novice
30. juli 2003 - 00:32 #27
Back again ...
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