Hallo,

Ik moet een opdracht maken voor school, maar ik ben nog een beetje nieuw met javascript.
Na het klikken op een knop (<button id="btnSearch" onclick="klik()">Opzoeken</button>) wil ik graag de functie klik() oproepen.
In deze functie moet ik controleren of de waarde in het tekstvak (<input type="text" id="txtNumber" />) numeriek is.
Als ik op deze knop klik, dan krijg ik altijd alert("Dit is een getal"), ook als ik niets of een letter ingeef.

Hier is mijn code:
[CODE]
function klik() {
var invoer = document.getElementById('txtNumber').innerText;

if(isNaN(invoer)) {
alert("Voer een getal in");
}
else if (invoer > 11) {
alert("voer een getal in tussen 0 en 10");
}
else {
alert("Dit is een getal");
}
}
Wel, een <input> heeft geen innerText of -HTML; wel een value

Dat wordt dus
var invoer = document.getElementById('txtNumber').value;

Trouwens ... Als je verwacht dat zo'n waarde een getal is, doe het dan zo:
var invoer = Number(document.getElementById('txtNumber').value);
Kris Peeters op 22/01/2013 14:46:13

Wel, een <input> heeft geen innerText of -HTML; wel een value

Dat wordt dus
var invoer = document.getElementById('txtNumber').value;

Trouwens ... Als je verwacht dat zo'n waarde een getal is, doe het dan zo:
var invoer = Number(document.getElementById('txtNumber').value);

Oké, bedankt!
Maar ik krijg nog steeds de alert uit mijn else, doe ik nog iets verkeerd?
En is het de beste manier met 'isNaN'?
Dat werkt toch ?


<script>
function klik() {
    var invoer = Number(document.getElementById('txtNumber').value);
    
    if(isNaN(invoer)) {
        alert("Voer een getal in");
    }
    else if (invoer > 11) {
        alert("voer een getal in tussen 0 en 10");
    }
    else {
        alert("Dit is een getal");
    }
}
</script>
<input id="txtNumber" value="17.9"> <button onclick="klik()">Klik</button>
Kris Peeters op 22/01/2013 15:28:23

Dat werkt toch ?


<script>
function klik() {
    var invoer = Number(document.getElementById('txtNumber').value);
    
    if(isNaN(invoer)) {
        alert("Voer een getal in");
    }
    else if (invoer > 11) {
        alert("voer een getal in tussen 0 en 10");
    }
    else {
        alert("Dit is een getal");
    }
}
</script>
<input id="txtNumber" value="17.9"> <button onclick="klik()">Klik</button>



Het is opgelost bedankt, voor je hulp!

Reageren