global variabele undefined

Status
Niet open voor verdere reacties.

louis14

Gebruiker
Lid geworden
11 feb 2014
Berichten
39
ik heb hier een kort java script in html page waarbij in een globale variabele gebruik maar die blijk undefined te zijn in de alert.
hoe krijg ik die variable goed?
ik vraag het omdat ik met globale variabelen werk in een groter programma en daar zijn ze ook undefined
(in ben een beginneling in javascript)

<!DOCTYPE HTML>

<html>

<head>
<title>Untitled</title>
<script>
var test = document.getElementById("input").value;
function write() {
alert(test);
}
</script>
</head>

<body>
<label>text</label> <input id="input">
<button onclick="write()">write</button>
</body>

</html>
 
Volgens de leesvoer moet ik de globaal gedefinieerde variabele kunnen gebruiken in de functie en dat is niet het geval!
 
Is de reden soms dat mijn script boven mijn body tag staat waardoor mijn script eerst uitgevoerd wordt vooraleer de body gelezen wordt zodat de inhoud van de variabele die in de input tag die in de body staat bepaald is nog onbepaald is?
 
Beste Louis14,

Eigenlijk is het zo dat je de waarde uit een invoerelement probeert te lezen terwijl de pagina met het invoerelement nog niet geladen is.
Je kunt kiezen om de JavaScript onderaan de body de zetten om dit te voorkomen of je kunt en functie uitvoeren wanneer de pagina geladen is.
Wanneer je jQuery gebruikt kan dit door met $(document).ready(); te werken. Met pure JavaScript kun je het las volgt doen:
[js]
document.addEventListener("ready",function(){
var test = document.getElementById("input").value;
function write(evt) {
evt.preventDefault();
alert(test);
return false;
}
});
[/js]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan