2016-07-23 6 views
-2

Ich bin sehr neu in JavaScript und ich möchte eine Eingabe überprüfen. Hier ist mein Skript:Was ist mit diesem Zahlenskript falsch?

function checkInp() 
{ 
    var x=document.forms["myForm"]["num"].value; // Get the value 
    if (isNaN(x)) 
    { 
    alert("Not a number!"); // Check if the input is a number 
    return false; 
    } 
    var valuex=document.forms["myForm"]["num"].value; // Get the value, i don't know if i have to re-write this variable, if no, please comment. 
    Number(valuex); // Make the input a number 
    if (valuex.value > 480) { 
    alert("Too high!"); // See if the number is greater than 480. If yes, say that, if not, return normally. 
    return false; 
    } 
    else { 
    return; 
    } 
} 

Ich weiß nicht, was passiert, aber das Skript nicht funktioniert, da ich den zweiten Teil hinzugefügt (zu prüfen, ob die Zahl, die größer als 480 ist).
Bitte helfen Sie mir, mit vollem Beispiel wenn möglich.

+0

Warum stimmen Sie unten? Gibt es einen Grund? – MucaP

Antwort

0

Die Art und Weise werde ich es tun:

  • Dokument selectorQuery ist verständlicher
  • Erhalten Sie nicht den Wert mehrere Zeit
  • Verwenden Sie ParseInt, um Ihre var Nummer
  • zu transformieren Vergessen Sie nicht, zurückzukehren wenn sie wahr Erfolg

Code:

function checkInp() { 
    var x = document.querySelector('input[name="num"]').value; 
    if (isNaN(x)) { 
    alert("Must be a number"); 
    return false 
    } else if (x > 480) { 
    alert("Must be under 480"); 
    return false 
    } 
    return true 
} 
+0

Danke. Es funktionierte! – MucaP

+1

Beachten Sie, dass 'parseInt()' für ** ganze Zahlen ** ist, und auch, dass es nicht-numerisches Abfallzeichen hinterlässt (so dass "123hello world" akzeptiert wird). – Pointy

+1

'! 0' ist wahr, und 0 ist definitiv eine Zahl. besser nach 'isNaN (x)' oder 'x! == x' suchen. 'NaN' ist der einzige Wert in JS, der nicht mit sich selbst übereinstimmt. – Thomas

1

Wenn ich mich nicht falsch, ich thnk Sie einfach so tun müssen:

If(valuex > 480)..