以下代码是程序的开头,允许用户输入值,计算机将猜测值。我坚持输入验证。出于某种原因,当我比较具有相同小数位的数字时,我的输入验证通过,例如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;
}
答案 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);
感谢您的建议!