Почему это ложное условие возвращает истину? - PullRequest
1 голос
/ 27 апреля 2020

Почему, когда я пишу на последнем входе 6 вместо 60 и нажимаю на кнопку, он возвращается к истине, думая, что мое состояние ложно? Как решить эту проблему? Заранее спасибо!

<!doctype html>
<html>

  <head>
  </head>

  <body>
    <button>get
      result</button>
    <div></div>
    <input Class="value1" value=10>
    <br>
    <br>
    <input Class="value2" value=20>
    <br>
    <br>
    <input Class="value3" value=30>
    <br>
    <br>
    <input Class="value4" value=40>
    <br>
    <br>
    <input Class="value5" value=50>
    <br>
    <br>
    <input Class="value6" value=60>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script>
      $('button').click(function() {
        var value1 = $(".value1").val();
        var value2 = $(".value2").val();
        var value3 = $(".value3").val();
        var value4 = $(".value4").val();
        var value5 = $(".value5").val();
        var value6 = $(".value6").val();

        if (value1 < value2 && value2 < value3 && value3 < value4 && value4 < value5 && value5 < value6) {

          $("div").text("true");
        } else {

          $("div").text("false");
        }

      });

    </script>
  </body>

</html>

Ответы [ 3 ]

0 голосов
/ 27 апреля 2020

Вы сравниваете строки (из .value), а не числа.


Вы можете использовать al oop с преобразованными значениями с унарным плюс +, как

let isIncreasing = true
let i = 1
while (i < 6 && isIncreasing) {
    isIncreasing = +$(".value" + i).val() < +$(".value" + (++i)).val();
}

if (isIncreasing) $("div").text("true");
else $("div").text("false");
0 голосов
/ 27 апреля 2020

По умолчанию ваше входное значение равно цифре c (вход = 30), но когда вы меняете значение на своем входе, оно становится строковым значением, и не происходит неявного разговора строки с цифрой c.

Когда вы получаете числовое c значение ввода, используйте функцию разбора, например Number или parseInt

0 голосов
/ 27 апреля 2020

Простым решением вашей проблемы является преобразование поля ввода в тип «Число», чтобы ограничить вводимые символы, а затем преобразование всех переменных в число.

Например:

<input  Class="value3" type="number" value=30>

$('button').click(function() {
    var value1 = Number($(".value1").val());
    var value2 = Number($(".value2").val());
    var value3 = Number($(".value3").val());
    var value4 = Number($(".value4").val());
    var value5 = Number($(".value5").val());
    var value6 = Number($(".value6").val());
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...