2015-08-12 3 views
0

Ниже приведена моя функция проверки и предотвращения ввода значения, превышающего доступное количество. Он запускается onBlur.Условный оператор Javascript, возвращающий неправильный вывод

Пусть: intData = 7 intOnHand = 46

Когда он достигает if(intData > intOnHand) он вводит код. Который якобы этого не должен. Потому что 7> 46 неверно. Как ни странно, это происходит только тогда, когда входные данные находятся между 5-9. И больше 46 (что верно).

Выход моего предупреждения:
intData7
inOnHand46
Кол-во займах Must не больше, чем на Qty инвентаре!

function CheckInput(intData){ 

     var mode = $('#mode').val(); 

     intOnHand = $('#qtyin').html(); 
     if(mode == 'Borrow'){ 
      if(intData > intOnHand){ 
       alert("intData"+intData); 
       alert("inOnHand"+intOnHand); 
       alert("Qty to Borrow Must not greater than the qty on the inventory!"); 
       $("#QtyToReturn").val(intOnHand); 

      } 
     } 

} 

ответ

3

Проблема заключается в том что вы делаете сравнение строк, потому что intOnHand имеет тип строки, преобразовать их к числовому типу перед сравнением

function CheckInput(intData) { 

    var mode = $('#mode').val(); 

    var intOnHand = +$('#qtyin').html(); 
    if (mode == 'Borrow') { 
     if (+intData > intOnHand) { 
      alert("intData" + intData); 
      alert("inOnHand" + intOnHand); 
      alert("Qty to Borrow Must not greater than the qty on the inventory!"); 
      $("#QtyToReturn").val(intOnHand); 

     } 
    } 

} 
+0

О, я вижу. Я попробую сделать это. – aozora

Смежные вопросы