javascript - Javascript不会显示消息
问题描述
我正在尝试创建一个简单的程序,用户需要选择一个最大数字,然后尝试猜测一个介于 1 和该最大数字之间的数字。当他们输入他们的猜测时,我需要验证输入并提供反馈选择:如果它是(1)不是数字,(2)不在范围内的数字,(3)正确的猜测,(4 ) 太高,但在范围内; (5) 太低,但在范围内。
function do_guess(prompt) {
let valid_input = false;
let guess = Number(document.getElementById("guess").value);
let message = document.getElementById("message");
while (!valid_input) {
input = window.prompt(prompt);
guess = Number(input);
if (isNaN(guess)) {
message.innerHTML = "That is not a number!";
} else if (guess < 1 || guess > val) {
// val = max_num - "I wasn't sure how to code this."
message.innerHTML = "That number is not in the range, try again.";
} else if (guess == num) {
valid_input = true;
message.innerHTML = "You got it!";
} else if (guess > num) {
message.innerHTML = "No, try a lower number.";
} else {
message.innerHTML = "No, try a higher number.";
}
}
}
do_guess("Number from 1 to 10")
Guess <input id="guess" value="" />
<div id="message"></div>
解决方案
根据您的要求,我正在从输入框中加载 max_val 并使用新按钮调用 do_guess 函数。
function do_guess(prompt) {
let valid_input = false;
let max_val = Number(document.getElementById("guess").value);
let message = document.getElementById("message");
let output = '';
let num = Math.floor((Math.random() * max_val) + 1);
prompt = prompt + max_val;
while (!valid_input) {
input = window.prompt(prompt + output);
let guess = Number(input);
if (isNaN(guess)) {
output = " That is not a number!";
} else if (guess < 1|| guess > max_val) {
output = " That number is not in the range, try again.";
} else if (guess == num) {
valid_input = true;
message.innerHTML = "You got it!";
} else if (guess > num) {
output = " No, try a lower number.";
} else {
output = " No, try a higher number.";
}
}
}
Max Guess <input id="guess" value="" />
<div id="message"></div>
<button onClick="javascript:do_guess('Number from 1 to ')">
Guess
</button>
推荐阅读
- c# - 将数据从中间件传递到 _Layout 视图
- sql-server - 我们可以用 ROLLUP 函数找到 MTD 和 YTD 吗?
- android - 将 React Native 升级到 0.60-RC2 后找不到库“libjsc.so”
- java - 发生了错误。有关详细信息,请参阅错误日志。org.eclipse.core.internal.resources.File 不能转换为 org.eclipse.core.resources.IProject
- sql - PLSQL:删除 Json 中不需要的双引号
- javascript - 如何在角度 2 中的多个模块中使用指令
- f# - 使用文件夹隔离一个 F# 项目中的模块 - 可能吗?
- c - 如何在C中获取对象中所有字符串的长度
- android - 在 kotlin 语言中快速“完成:@escaping”。如何在 kotlin 中使用回调?
- optaplanner - 如何在 optaplanner 中应用多线程功能