2016-04-27 9 views
0

Ich muss myFunction überprüfen, um zum Zeitpunkt onblur Ereignis zu laufen. Ich habe es versucht, aber nicht funktioniert.Wie kann überprüft werden, ob die eingegebene Zahl eine Ganzzahl ist oder nicht?

HTML-Formular:

<div class="header1"> 
    <input type="text" id="ename" onblur="myFunction('ename')" name="name" placeholder="Enter Employee ID" required="" /> 
</div> 

JavaScript: Code

<script> 
    function myFunction('id') { 
     var x = document.getElementById('id'); 
     if (x === parseInt(x, 10)) 
      alert("data is integer") 
     else 
      alert("data is not an integer")    
     } 
</script> 
+1

Mögliche Duplikat [Überprüfen Sie, ob variable Anzahl oder Zeichenfolge in Javascript ist] (http://stackoverflow.com/questions/1303646/check-whether-variable-is-number-or -string-in-javascript) – Max

+0

Verwenden Sie diesen einfachen Trick, um zu überprüfen, ob es sich um eine absolute Ganzzahl handelt x% 1 == 0 –

+0

Sie können auch das Attribut "pattern" verwenden, um nur Zahlen zuzulassen, z pattern = "[0-9] +" – lipp

Antwort

0

Schnellste (höchste Leistung) integer Prüfung:

<div class="header1"> 
    <input type="text" id="ename" onblur="enteredInteger()" name="name" placeholder="Enter Employee ID" required="" /> 
</div> 
<script> 
    function enteredInteger() { 
    var value = this.value; 
    if (isNaN(value)) { 
     return false; 
    } 
    var x = parseFloat(value); 
    return (x | 0) === x; 
    } 
</script> 
+0

In welchem ​​Fall gibt diese spezielle Funktion wahr zurück? Ich habe isInt (21), isInt ("21") versucht, beide sind falsch zurückgekehrt. –

+0

Sie sollten den Ansatz ändern, es sei denn, es ist etwas Schreckliches daran falsch. Markieren Sie auch, was in dem Code, den OP zur Verfügung gestellt hat, falsch gelaufen ist ... Diese Frage bezieht sich nicht auf _performance_! – Rayon

+0

Sie sind beide falsch, es funktioniert gut ... isInt ("21") === wahr – lerouche

0

Sie haben ein wenig Syntax Fehler in Ihrem Code. Versuchen Sie folgendes:

// Javascript Code: 
 

 
function myFunction(id) 
 
{ 
 
    var x = document.getElementById(id); 
 
    if (x.value == parseInt(x.value, 10)) 
 
    alert("data is integer"); 
 
    else 
 
    alert("data is not an integer"); 
 
}
<!-- HTML Code: --> 
 

 
<div class="header1"> 
 
      <input type="text" id="ename" onblur="myFunction('ename')" name="name" placeholder="Enter Employee ID" required="" /> 
 
    </div> 
 
    

+0

Sie haben den Code nicht behoben, die Variable 'x' ist immer noch ein HTMLElement Objekt – lerouche

+0

@lerouche jetzt behoben –

+0

immer noch nicht funktioniert. Es zeigt mir das gleiche wie "Daten ist keine Ganzzahl" in beiden Fällen (wenn ich Ganzzahl eingegeben und wenn ich Alphabet eingegeben) – user3250190

0

Here we go:

<div class="header1"> 
    <input type="text" id="ename" onblur="myFunction()" name="name" placeholder="Enter Employee ID" required="" /> 
</div> 

<script> 
function myFunction(){ 
    //use the === operator as below 

    if (data === parseInt(data, 10)) 
     alert("data is integer"); 
    else 
     alert("data is not an integer"); 
} 
</script> 

Hoffe, es hilft;)

+0

Was ist 'Daten'? – lerouche

0

ich ein einfaches Gespräch den ursprünglichen Wert auf ganzzahlige und testen würde mit eine Zeichenfolgendarstellung des geparsten Werts

Die Aufgabe lappt einige kohärente Verwendung von Formularelementen, die hier korrigiert werden.

function myFunction(id) { 
 
    var x = document.getElementById(id).value; 
 
    if (x === parseInt(x, 10).toString()) { 
 
     alert("data is integer"); 
 
    } else { 
 
     alert("data is not an integer"); 
 
    } 
 
}
<input type="text" id="ename" onchange="myFunction('ename')" name="name" placeholder="Enter Employee ID" required="" />

Verwandte Themen