Avatar billede htm Nybegynder
26. november 2003 - 10:40 Der er 4 kommentarer og
1 løsning

Input værdi til selectbox

Hej

Hvis jeg skriver en værdi i en tekstbox hvordan får jeg så selectboksen til at ændre sig, så den option der har den værdi jeg har skrevet er markeret?

Jeg har følgende kode:

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
<head>
<title>Test</title>
</head>

<body>
<p>Test af form</p>
<form action="" method="post" id="form">
<p>
<input type="text" name="A" /><br />
<select name="B">
<option value="1">Foerste</option>
<option value="2">Anden</option>
<option value="3">Trejde</option>
<option value="4">Fjerde</option>
</select>
</p>
</form>
</body>
</html>
Avatar billede mm12010 Nybegynder
26. november 2003 - 10:56 #1
måske sådan:

<input type="text" name="A" onChange="if(this.value.match(/[0-9]/)){this.form.B.options.selectedIndex=parseInt(this.value)-1;}" />
Avatar billede htm Nybegynder
26. november 2003 - 11:02 #2
Den virker ok - bortset fra at den ikke kigger på værdien af selecten.

Forestil dig at de er sorteret alfabetisk efter navnet. Så passer den overhovedet ikke mere. Den skal ind og kigge på option'ens value.
Avatar billede o-zone Nybegynder
26. november 2003 - 11:05 #3
Hvad med det her?
---8<---------

<script language="javascript" type="text/javascript">

function setSelect(tekst){
    for(var i=0;i<document.form1.selekt.options.length;i++){
        if (document.form1.selekt.options[i].text==tekst){
            document.form1.selekt.selectedIndex=i;
            return;
        }
    }
}
   
</script>

<form name="form1">
<input type="text" name="tekst" size=30 onchange="setSelect(this.value); return true;"><br>
<select name="selekt">
    <option>vælg person</option>
    <option>Hans</option>
    <option>Grethe</option>
    <option>Heksen</option>
</select>
</form>
---8<---------
Avatar billede o-zone Nybegynder
26. november 2003 - 11:08 #4
erhm... jeg tester for option[x].text i min version
vil du hellere teste for value skal du selvfølgelig bare bytte .text ud med .value (men så skal brugeren vide hvad value indeholder!)

(-:H@zze
Avatar billede htm Nybegynder
26. november 2003 - 11:15 #5
o-zone>> Efter at have modificeret lidt i det så det passede ind i min form ser det ud til at virke perfekt.
Og ang. at brugeren skal kende value, er det ikke noget problem, da det faktisk bliver taget fra et hidden felt. :-)

Min funktion er som følger:
function setSelect(tekst){
    for(var i=0;i<document.forms[0].B.options.length;i++){
        if (document.forms[0].B.options[i].value==tekst){
            document.forms[0].B.selectedIndex=i;
            return;
        }
    }
}
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