Логические операторы не работают правильно в jQuery - PullRequest
0 голосов
/ 08 мая 2018

Я работаю над функцией.

var price       =   $("input[name=bid_price]").val();

var milestone   =   $("input[name=initial_price]").val();

  if(price >= milestone)
                {
                  console.log('True);
                }
          else {
                  console.log('False');
                }

Теперь, если я введу цену как 100 и веху как 90. Затем он должен вывести True, но он переходит к другому и печатает false. Если я изменяю больше чем на меньше, что означает 100 <90, то это печатает true Что здесь не так, почему не работает? </p>

1 Ответ

0 голосов
/ 08 мая 2018

Сначала необходимо проанализировать полученные значения по числу:

var price       =   parseFloat($("input[name=bid_price]").val());
var milestone   =   parseFloat($("input[name=initial_price]").val());

Значения, извлеченные из полей ввода с использованием val(), являются строками.Таким образом, логическое сравнение становится ошибочным.Если вы конвертируете их в числа, ваш код будет работать нормально.

См. Эту рабочую демонстрацию:

var price = parseFloat($("input[name=bid_price]").val());
var milestone = parseFloat($("input[name=initial_price]").val());

if (price >= milestone) {
  console.log('True');
} else {
  console.log('False');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="bid_price" value="46">
<input name="initial_price" value="27">
...