Avatar billede Andisch Nybegynder
06. januar 2012 - 22:18 Der er 6 kommentarer og
1 løsning

Javascript problemer - getElementById

Hey. Jeg har sat mig for at lære javascript, men er allerede stødt ind i problemer. Jeg har skrevet denne kode:

<html>
<head>
<script type="text/javascript">
   
var output = document.getElementById("test");

function testfunction() {
    document.write(output);
    }
</script>
</head>


<body>
    <form>
    <input type="text" id="test"/>
    <input type="button" onClick="testfunction();" value="Udregn"/>
    </form>
</body>
</html>


Men når jeg har skrevet noget ind i min tekstbok og trykker på knappen, skriver den bare "null". Jeg har testet i både Chrome, Firefox og IE9 men ingen af dem virker?

Hjælp :)
Avatar billede keysersoze Guru
06. januar 2012 - 22:26 #1
Først og fremmest så sørg for en DOCTYPE.

Dernæst, grunden til at det ikke virker er at din variabel "output" bliver forsøgt sat ved page load (hvor den formentilg vil fejle da element ikke findes på det tidspunkt koden køres). Når funktionen køres forsøges kun at indsætte værdien fra det tidspunkt din side blev loaded og ikke værdien fra her og nu - så flyt din linje ind i funktionen og det vil virke.
Avatar billede Andisch Nybegynder
06. januar 2012 - 22:38 #2
Så koden kommer til at se således ud? Hvis det er sådan du mener, så virker det desværre stadig ikke.. Jeg får dog en ny fejlmeddelse..:

[object HTMLInputElement]


<html>
<head>
<script type="text/javascript">
   

function testfunction() {
var output = document.getElementById("test");
    document.write(output);
    }
</script>
</head>


<body>
    <form>
    <input type="text" id="test"/>
    <input type="button" onClick="testfunction();" value="Udregn"/>
    </form>
</body>
</html>
Avatar billede danco Nybegynder
06. januar 2012 - 22:44 #3
function testfunction() {
    var output = document.getElementById("test").innertHTML;
    document.write(output);
}

nu vil du få indholdet af test elementet.
Avatar billede Andisch Nybegynder
06. januar 2012 - 22:49 #4
Det virker ikke danco.. :/
Avatar billede keysersoze Guru
06. januar 2012 - 22:51 #5
ah - der er forhåbentlig ingen der benytter innerHTML, bare value;

var output = document.getElementById("test").value;

og ret beset er det spild at lægge det over i en variabel bare for kun at indsætte det så derfor;

document.write(document.getElementById('test').value);
Avatar billede Andisch Nybegynder
06. januar 2012 - 22:54 #6
ENDELIG!

Tusind tak, keysersoze! :)

Ved godt at en variabel slet ikke behøves, men det er bare princippet jeg skulle have fat i.. Jeg skal bruge det i forbindelse med noget andet :).

Hvis du opretter et svar smider jeg nogle points i din retning :)
Avatar billede keysersoze Guru
06. januar 2012 - 23:04 #7
svar :)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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