2015-06-01 5 views
0

Простая проверка логического оператора JavaScript для меня не работает.Javascript Logical Operator не проверяет

например. Целевая цена не должна быть больше, чем первоначально цена

x = input from user; 
y = 1000; // fixed 

if(x > 1000) 
{ 
    alert (x+'should not be greater than'+y); 
} 
else 
{ 
    alert (' proceed'); 
} 

вот мой EXAMPLE

+0

Ваш пример отлично работает в Chrome – Turnip

+0

использования, если (ParseInt (targetPrice)> ParseInt (orginalPrice)) –

ответ

0

Эти значения типа string, вам нужно преобразовать их в number. Вы можете использовать для этого Number().

targetPrice = Number($('#pdiwap_dropamt').val()); 
    orginalPrice = Number($('#orgprice_wap').val()); 
0

Потому что и строка операндов, так и сравнение строк.

Вы можете преобразовать значения в ряд, а затем сделать сравнение как

targetPrice = +$('#pdiwap_dropamt').val(); 
    orginalPrice = +$('#orgprice_wap').val(); 
0

Вы compering две строки. Используйте что-то вроде этого

if (parseInt(targetPrice) > parseInt(orginalPrice)) 
0

Просто используйте функцию parseInt для правильной проверки. Bucause html input дает значение в строковом формате.

if (parseInt(targetPrice,10) > parseInt(orginalPrice,10)) 

Updated Link

0

Я думаю, что проблема с входа вы получаете, который рассматривается как строка. Сначала попробуйте преобразовать в целое число перед сравнением.

e.g x = parseInt (Вход от пользователя);

+0

проверить эту обновленную https://jsfiddle.net/5t422enw/3/ – neddinn

0

Да! это входное значение является строкой, поэтому оно не проверяется правильно.

Попробуйте это.

var x = document.getElementById("input").value; 
    var y = 1000; 
    if(!isNaN(x) && x < 1000) { 
     alert ('proceed'); 
    } else { 
     alert(x+'should not be greater than'+y); 
    }