首页 > 解决方案 > 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>

标签: javascripthtmlif-statement

解决方案


根据您的要求,我正在从输入框中加载 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>

推荐阅读