按下提交按钮时不显示答案

asnwer not showing up when submit button is pressed

/*Create a special calculator that read a number from the user, checks that it is an integer and performs a series of mathematical calculations as listed:
calculates the number's factorial. A factorial is the product of an integer and all the integers below it; e.g., the factorial of 4 is equal to 24 (4 * 3 * 2 * 1).
Calculate the square and cube of the number. A number squared is a number that is multiplied by itself; e.g., 22 is equal to 4 (2 * 2). A number cubed is a number that is multiplied by itself twice e.g., 23 is equal to 8 (2 * 2 * 2). 
*/

// Function called when the form is submitted.
// Function performs the calculations and returns false.
function calculate() {
'use strict';
        // For storing the factorial, squared and cubed results:
        var factorial;
        var squared;
        var cubed;
        
          // Get references to the form value:
          var number = document.getElementById('number').value;
          
          // Add validation here later!
    
         // Calculate the factorial results:
         //HINT: the factorial of 0 is 1.
         *function factorial(number){*  **FACTORIAL IS ALREADY DEFINED**
         if (number <= 1) {
             return 1;
         }else{
             return number * factorial(number - 1);
}
         }
        factorial(number);       
         // Calculate the squared results: **MATH IS UNDEFINED**
        squared = *math*.pow(number, 2); 
         
          // Calculate the cubed results:
        cubed = *math*.pow(number,3 );
          
          
          //display factorial, squared and cubed results
        document.getElementById('factorial').value = factorial;
        document.getElementById('squared').value = squared;
        document.getElementById('cubed').value = cubed;
 
        
    // Return false to prevent submission:
    return false; 
    
}// End of calculate() function.

// Function called when the window has been loaded.
// Function needs to add an event listener to the form.
function init() {**THIS SHOW AS UNUSED**
'use strict';
    // Add an event listener to the form:
    document.getElementById("calculate").onsubmit = calculate;

}  // End of init() function.

// Assign an event listener to the window's load event:

**1。 L23:factorial 已定义 2. L32,35:未定义变量 3. L51:未使用 init() ** html中的所有内容都是正确的,但是当我在网页上按下提交按钮时,容器中甚至没有显示任何值,一直在努力但仍然无法弄清楚

Here is my HTML code.
<!DOCTYPE html> 
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Untitled Document</title>
  <link href="css/task1.css" rel="stylesheet" type="text/css">
</head>

<body>

<div class="container">
  <div class="header"><!-- end .header --></div>
  <div class="content">
    <h1>Front-end Development Scripting</h1>
    <h2>Portfolio Task 1: Simple Variables</h2>
    <form name="theForm" method="post" action="">
      <fieldset>
        <legend>Fancy Calculator</legend>
        <p>
          <label>
            Please enter anumbr between 0 and 50</label>
          <input type="number" name="number" id="number" value="0" min="1"  required>>
        </p>
        <p>
          <input type="submit" name="calculate" id="calculate" value="Calculate"></p>
          
        <p>
          <label>The Factorial of your number is:
            <input type="text" name="factorial" id="factorial">
          </label>
        </p>
        <p>
          <label>The square of your number is:
            <input type="text" name="squared" id="squared">
          </label>
        </p>
        <p>
          <label>The cube of your number is:
            <input type="text" name="cubed" id="cubed">
          </label>
        </p>
      </fieldset>
    </form>
<p>&nbsp;</p>
  <!-- end .content --></div>
  <div class="footer">
    <p>student name</p>
    <!-- end .footer --></div>
  <!-- end .container --></div>
  <script src="js/task1.js"></script>
</body>
</html>

我修复了 javascript 代码,但它仍然无法正常工作。你能看看我的 HTML 代码并告诉我在哪里修复它吗?

我已经修复了你的代码。有些事情要记下来:-

  1. 您为函数使用了与变量 factorial 相同的名称。因此它显示 factorial is already defined.
  2. Math 对象有大写 M。或者,您也可以执行 number**2number**3
  3. 您刚刚声明了 init 函数,但从未调用它。
  4. 您可以使用 button 类型的输入并添加 onclick 侦听器而不是 onsubmit

function factorial(number) {
  if (number <= 1) {
    return 1;
  } else {
    return number * factorial(number - 1);
  }
}

function calculate() {
  'use strict';
  // For storing the factorial, squared and cubed results:
  var factorialNum;
  var squared;
  var cubed;

  // Get references to the form value:
  var number = document.getElementById('number').value;

  // Add validation here later!

  // Calculate the factorial results:
  //HINT: the factorial of 0 is 1.
  
  factorialNum = factorial(number);
  // Calculate the squared results: 
  squared = Math.pow(number, 2);  //you can also do number**2

  // Calculate the cubed results:
  cubed = Math.pow(number, 3);   // number**3 


  //display factorial, squared and cubed results
  document.getElementById('factorial').value = factorialNum;
  document.getElementById('squared').value = squared;
  document.getElementById('cubed').value = cubed;


  // Return false to prevent submission:
  return false;

} // End of calculate() function.

// Function called when the window has been loaded.
// Function needs to add an event listener to the form.
function init() {
    'use strict';
  // Add an event listener to the form:
  document.getElementById("calculate").onclick = calculate;

}

init()
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Untitled Document</title>
  <link href="css/task1.css" rel="stylesheet" type="text/css">
</head>

<body>

<div class="container">
  <div class="header"><!-- end .header --></div>
  <div class="content">
    <h1>Front-end Development Scripting</h1>
    <h2>Portfolio Task 1: Simple Variables</h2>
    <form name="theForm" method="post" action="">
      <fieldset>
        <legend>Fancy Calculator</legend>
        <p>
          <label>
            Please enter anumbr between 0 and 50</label>
          <input type="number" name="number" id="number" value="0" min="1"  required>>
        </p>
        <p>
          <input type="button" name="calculate" id="calculate" value="Calculate"></p>
          
        <p>
          <label>The Factorial of your number is:
            <input type="text" name="factorial" id="factorial">
          </label>
        </p>
        <p>
          <label>The square of your number is:
            <input type="text" name="squared" id="squared">
          </label>
        </p>
        <p>
          <label>The cube of your number is:
            <input type="text" name="cubed" id="cubed">
          </label>
        </p>
      </fieldset>
    </form>
<p>&nbsp;</p>
  <!-- end .content --></div>
  <div class="footer">
    <p>student name</p>
    <!-- end .footer --></div>
  <!-- end .container --></div>
  <script src="js/task1.js"></script>
</body>
</html>