JavaScript:当值具有不同的小数位时,逻辑比较失败

时间:2017-02-03 17:59:49

标签: javascript html validation var

以下代码是程序的开头,允许用户输入值,计算机将猜测值。我坚持输入验证。出于某种原因,当我比较具有相同小数位的数字时,我的输入验证通过,例如25和49。

Image of passed input validation

然而,当我尝试比较9和25之类的东西时,虽然输入验证应允许它通过,但它会转到我的代码的else部分。我认为这与JavaScript解释数据类型的方式有关。代码有点乱,程序不完整。重点是我现在从HTML和输入验证中提取值的方式。这是代码。

function runGame() {
    //get variables from the input fields in HTML form
    var low = document.getElementById('lowNum').value;
    var high = document.getElementById('highNum').value;
    var guess = document.getElementById('compGuess').value;

    //input validation
    if (low < high && low > 0 && high <= 50 && guess > 0 && guess <= 10) {
        alert("Low number: " + low + "\nHigh Number: " + high + "\nComputer Guesses: " + guess);
        document.getElementById("computerGuessVal").innerHTML = getRndInteger(low, high);
    } else {
        alert("Invalid selection. Make sure that the number range is between 1 and 50 and guesses are higher than zero.");
    }
}

function getRndInteger(low, high) {
    high = Math.floor(high);
    low = Math.ceil(low);
    return Math.floor(Math.random() * (high - low + 1)) + low;
}

1 个答案:

答案 0 :(得分:0)

更新 - 已解决我在检查数据类型

后将ParseInt添加到我的代码中 带警报的

(猜测类型)。这是工作代码:

//从HTML表单的输入字段中获取变量并转换为整数

var low = parseInt(document.getElementById('lowNum')。value);

var high = parseInt(document.getElementById('highNum')。value);

var guess = parseInt(document.getElementById('compGuess')。value);

感谢您的建议!