为什么数字有效时它显示为未定义?

我有这段代码要求在td中显示一个数字。但是它不能正常工作。

用户只能输入在func1中传递的最小值和最大值之间的值。并且该数字必须是有效数字。

如果满足这些条件,则td应显示用户输入的数字,否则应再次出现提示用户输入有效数字的提示。

如果用户首先输入一个有效数字,则该代码有效,例如,在这种情况下,最小值为1,最大值为10,如果用户在这两个值之间输入一个数字,则该代码起作用,该用户输入的数字将显示在td。但是,如果用户输入数字0,则会出现消息“值0无效”,并再次出现提示,这是正确的。但是,如果用户输入的有效数字(例如1),则它看起来是未定义的,而不是td中的1。

你知道为什么吗?

的HTML

<tr>
        <td>Number</td>
        <td id="tdNumber"></td>
        <td><button
                    onclick="func1()">Add</button></td>
      </tr>

JS

let config = {

  numberX: NUMBER_X
}

function showConfig() {

  document.getElementById(TD_NUMBER).innerHTML =
    config.numberX;
}

function func1() {

  config.numberX =
    func2(1, 10, P_CONSTANT);

  showConfig();
}

function func2(min, max, p = P_CONSTANT) {

  var number = parseInt(prompt("Enter a number between " + min + "and " + max));

  if(!Number.isInteger(number)){
     alert("The number " + number + " is not valid.");
     func1();

  }

  else if(number > max || number < min){
      alert("The number " + number + " is not valid");
      func1();

  }
  else{
      return number;
  }

}
评论