JS если стат внутри функции - PullRequest
1 голос
/ 24 марта 2020

Мне нужна помощь, пожалуйста, я пытаюсь проверить условие «если» внутри функции и распечатать его в поле ввода, но я всегда получаю ложное значение, почему этот оператор if внутри функции всегда возвращает ложное значение? и как я могу это исправить, спасибо.

<body>

    <label>Value1:</label>
    <input id='v1' type="number"><br><br>

    <label>Value2:</label>
    <input id='v2' type="number"><br><br>

    <label>Value3:</label>
    <input id='v3' type="number"><br><br>

    <button onclick="calculateTriangle()">Answer</button>
    <input id='ans'><br><br>

    <script>

    function calculateTriangle() {

        var V1 = document.getElementById('v1').value;
        var V2 = document.getElementById('v2').value;
        var V3 = document.getElementById('v3').value;
        console.log(V1);
        console.log(V2);
        console.log(V3);
        var an = Triangle(V1,V2,V3)
        document.getElementById('ans').value=an;

        }

    function Triangle(a,b,c){

        if (a+b>c && a+c>b && b+c>a){
            return true;
            }
            return false;

            }


    </script>
</body>

Ответы [ 2 ]

1 голос
/ 24 марта 2020

Парсит ваши входные значения как целое число. Используйте эти строки кода вместо своих. Значения из ваших полей ввода являются строковыми.

Поэтому, когда вы проверяете a + b > c, он объединяет a + b. Допустим, вы поставили a = 1 и b = 2, тогда вместо 3 получается a + b = 12.

 var V1 = parseInt(document.getElementById('v1').value);
 var V2 = parseInt(document.getElementById('v2').value); 
 var V3 = parseInt(document.getElementById('v3').value);
0 голосов
/ 24 марта 2020
if (a+b>c && a+c>b && b+c>a){
    return true;
} else {
    return false;
}
...