2016-05-01 7 views
0

Ich habe 2 numerische Eingabefelder und die unten läuft, wenn der Benutzer die Eingabe beendet. Was ich tue, ist zu überprüfen, dass eine Eingabe nicht größer ist als Eingabe b und wenn es ein Fehler ist.IF Größer funktioniert nicht gut in js

Das Problem ist, dass die Berechnung nicht gut passiert. Zum Beispiel funktioniert es, wenn a ist 200 und b ist 100, aber nicht wenn a ist 200 und b ist 5

Nicht sicher warum ... so würde jede Hilfe sehr geschätzt werden.

$("#input_6_23, #input_6_24").on({ 
    blur: function() { 
     var a = document.getElementById("input_6_23").value; 
     var b = document.getElementById("input_6_24").value; 

     if(a > b) {  
      alert(a is bigger than b);   
     } 
    } 
}); 
+1

Mögliches Duplikat [Problem mit dem Vergleich von zwei Zahlen in Javascript] (http://stackoverflow.com/questions/9094299/issue-with-comparing-two-numbers-in-javascript) – trincot

Antwort

3

seine Arbeit so?

jQuery(document).ready(function($){ 

    $("#input_6_23, #input_6_24").on('blur',function() { 

     check(); 
    }); 
    function check(){ 
     var a = Number($("#input_6_23").val()); 
     var b = Number($("#input_6_24").val()); 

     if(a > b) {  
     alert(a+' is bigger than '+b);   
     } else { 
     alert("error"); 
    } 
}}); 
+0

Ja Gehilfen gearbeitet wie Ein Zauber. Sorry für die späte Antwort :) – Jason

+0

Danke, es hat funktioniert :-) – uzma

0

Sie machen String-Vergleiche, nicht numerischen Vergleich. Sie können wie folgt vor dem Vergleich (man beachte die Zugabe von + Zeichen, wenn die .value Abrufen) in eine Zahl umwandeln:

$("#input_6_23, #input_6_24").on({ 
    blur: function() { 
     var a = +document.getElementById("input_6_23").value; 
     var b = +document.getElementById("input_6_24").value; 

     if(a > b) {  
      alert("a is bigger than b");   
     } 
    } 
}); 

P. S. Sie müssen auch Ihre a is bigger than b in eine gültige Zeichenfolge mit Anführungszeichen um es machen.

Es gibt mehr Möglichkeiten, um eine Zeichenfolge in eine Zahl zu konvertieren:

var num = parseInt(str, 10); 
var num = +str; 
var num = Number(str); 

Und hoffentlich ist dies nur zum Testen, weil Putting ein alert() auf einem blur Ereignis in einem tatsächlichen realen Gebrauch ziemlich widerwärtig ist Szenario.

0

Wechsel in:

var a = parseInt(document.getElementById("input_6_23").value, 10); 
var b = parseInt(document.getElementById("input_6_24").value, 10);