Avatar billede cozey Nybegynder
24. november 2009 - 23:07 Der er 10 kommentarer og
1 løsning

få et ID på en textfelt.

Hej alle.

Jeg sidder og roder lidt med et script (javascript), hvor den automatisk finder bynavn ud fra postnummer.

Og det spiller også fint hvis jeg bruger følgende kode i min html-kode:

<input type="text" name="zip" onchange="setCity(this, 'city')">
<span id="city">&nbsp;</span>

Men problemet er at den skal vise resultatet (dvs. id="city") i et andet textfelt, og hvordan gør jeg lige det?

Jeg har forsøgt blot at give den et id således:
<input type="text" name="city" id="city"> -Men det virker ikke!... det skal vel på en eller anden måde ind i value="" ... eller hvad?

På forhånd tak.

/Daniel
Avatar billede mclemens Nybegynder
24. november 2009 - 23:18 #1
Nu er det svært at sige hvad der præcis skal rettes i setCity() funktionen som du ikke har postet, men umiddelbart må .innerhtml eller .nodeValue skulle rettes i funktionen til .value

... Ellers så post lige funktionen setCity().
Avatar billede cozey Nybegynder
24. november 2009 - 23:21 #2
Selv javascriptkoden i <head> ser således ud:

<script type="text/javascript" src="postnr.js"></script>
<script type="text/javascript">
function setCity(oInp, sId) {
    var sCity = pn["p"+oInp.value] || "Kunne ikke finde bynavn";
    document.getElementById(sId).firstChild.nodeValue = sCity;
}
</script>


Og så har jeg selvfølgelig:

<input type="text" name="zip" onchange="setCity(this, 'city')">
Avatar billede mclemens Nybegynder
24. november 2009 - 23:33 #3
document.getElementById(sId).value = sCity;
Avatar billede mclemens Nybegynder
24. november 2009 - 23:36 #4
Forklaring
document.getElementById(sId)
- fanger elementet med id="city"

.firstChild
- Fanger første element i elementet med id city

.nodeValue
- Da første element før var en tekstnode(element) skifter værdien af elementet - altså teksten.

Da der ikke er et element i et input element men istedet en værdi der skiftes skal strengen .firstChild.nodeValue udskiftes med .value, så der manipuleres med værdien af elementet istedet.
Avatar billede cozey Nybegynder
24. november 2009 - 23:53 #5
Det spiller perfekt. Tusind tak for hjælpen.
Avatar billede mclemens Nybegynder
24. november 2009 - 23:57 #6
Velbekomme og tak for point :)
Avatar billede Reverentx Nybegynder
27. august 2010 - 16:17 #7
Jeg har samme problem men er ikke superstærk i java:
<input class="box5" type="text" name="zip" size="2" onchange="setCity(this, 'city')"/>&nbsp;By: 
<span id="city"></span>
<input type="text" id="city" class="box4" name="bynavn">
Jeg mangler den java der skal være i den anden textbox der skal vise bynavnet.
kan du hjælpe mig??
Avatar billede mclemens Nybegynder
27. august 2010 - 17:00 #8
Hvis problemet er at du vil have city resultatet vist i både et span og input element kan du sige:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>
<script type="text/javascript">

pn={"p7000":"Fredericia","p8210":"Århus V"};

function setCity(oInp, sId) {
    var sCity = pn["p"+oInp.value] || "Kunne ikke finde bynavn";
    document.getElementById(sId).value = sCity;
    document.getElementById(sId+"2").firstChild.nodeValue = sCity;
}
</script>

<style type="text/css">

</style>

</head><body>
<input type="text" name="zip" onchange="setCity(this, 'city')">
<span id="city2">&nbsp;</span>
<input type="text" name="city" id="city">
</body></html>


- Læg mærke til at du kun må have et enslydende id pr. side, derfor navngivning af span'en til city2.

Læg også mærke til pn objectet der leverer postnumrene (optimalt er nok at lægge pn objectet i en seperat fil for at spare på load tiden.

<script type="text/javascript" src="postnr.js"></script>

... og husk at skrive &nbsp; eller noget i din span ellers er der ingen nodevalue at manipulere med ...
Avatar billede Reverentx Nybegynder
28. august 2010 - 09:04 #9
er det muligt at fokus på textbox2 når textbox1 indeholder 4 tegn
altså at den den auto hopper vidre og viser resultatet og går ned til mit næste felt og fokuser.
Avatar billede Reverentx Nybegynder
28. august 2010 - 09:05 #10
forresten tusinde tak for dit hurtige svar
Avatar billede mclemens Nybegynder
28. august 2010 - 10:22 #11
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>
<script type="text/javascript">

pn={"p7000":"Fredericia","p8210":"Århus V"};

function setCity(oInp, sId) {
    var sCity = pn["p"+oInp.value] || "Kunne ikke finde bynavn";
    document.getElementById(sId).value = sCity;
    document.getElementById(sId+"2").firstChild.nodeValue = sCity;
    if(pn["p"+oInp.value])document.getElementById("naesteinput").focus();
}
</script>

<style type="text/css">

</style>

</head><body>
<input type="text" name="zip" onchange="setCity(this, 'city')" onkeyup="if(this.value.length>3)setCity(this, 'city')";>
<span id="city2">&nbsp;</span>
<input type="text" name="city" id="city">


<input type="text" name="naesteinput" id="naesteinput">

</body></html>
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