Javascript-将两个输入字段相乘并显示

Javascript-将两个输入字段相乘并显示,javascript,forms,function,math,getelementbyid,Javascript,Forms,Function,Math,Getelementbyid,我的想法是,我应该能够有两个输入数字的字段,然后我需要显示总和以及乘积。 我想我会测试一下这个产品,但我一直得到一个非数字错误。任何帮助都会很好 <!DOCTYPE html> <html> <body> <form> First Number<br> <input id="num1" type="text" name="num1"> <br>

我的想法是,我应该能够有两个输入数字的字段,然后我需要显示总和以及乘积。 我想我会测试一下这个产品,但我一直得到一个非数字错误。任何帮助都会很好

<!DOCTYPE html>
<html>
  <body>

    <form>
        First Number<br>
        <input id="num1" type="text" name="num1">
    <br>
        Second Number:<br>
        <input id="num2" type="text" name="num2">
        <br><br>
      <input type="button" value="Do Maths" onclick="doMath();" />
    </form>

  <script>

      function doMath() {
          var numOne = document.getElementById('num1').value;
          var numTwo = document.getElementById('num2').value;
          var theProduct = parseInt(my_input1) * parseInt(my_input2);  document.write(theProduct);
          document.write(theProduct);


}

  </script>


  </body>
</html>
您有未定义的my_input1和my_input2

更改此行:

var theProduct=parseIntmy\u input1*parseIntmy\u input2;文件。书面产品

这应该是正确的行:

var theProduct=parseIntnumOne*parseIntnumTwo;文件。书面产品

显然,如果你想得到总数,你应该:

var theTotal=parseIntnumOne+parseIntnumTwo

并将其打印为:document.writetheTotal

另外 我想在我的回答中再补充一点。如果您只是在测试,请改用此选项并在控制台中查看:

console.log("Product: " + theProduct);
console.log("Total: " + theTotal);
如果您以这样的方式写入文档,您将删除所有内容,这意味着您需要刷新每个输入。不确定你是否意识到了这一点。无论如何,这里的函数仅供参考

function doMath() {
      var numOne = document.getElementById('num1').value;
      var numTwo = document.getElementById('num2').value;
      var theProduct = parseInt(numOne) * parseInt(numTwo);
      var theTotal = parseInt(numOne) + parseInt(numTwo);
      // document.write(theProduct);
      // document.write(theTotal);
      console.log("Product: " + theProduct);
      console.log("Total: " + theTotal);
}
您有未定义的my_input1和my_input2

更改此行:

var theProduct=parseIntmy\u input1*parseIntmy\u input2;文件。书面产品

这应该是正确的行:

var theProduct=parseIntnumOne*parseIntnumTwo;文件。书面产品

显然,如果你想得到总数,你应该:

var theTotal=parseIntnumOne+parseIntnumTwo

并将其打印为:document.writetheTotal

另外 我想在我的回答中再补充一点。如果您只是在测试,请改用此选项并在控制台中查看:

console.log("Product: " + theProduct);
console.log("Total: " + theTotal);
如果您以这样的方式写入文档,您将删除所有内容,这意味着您需要刷新每个输入。不确定你是否意识到了这一点。无论如何,这里的函数仅供参考

function doMath() {
      var numOne = document.getElementById('num1').value;
      var numTwo = document.getElementById('num2').value;
      var theProduct = parseInt(numOne) * parseInt(numTwo);
      var theTotal = parseInt(numOne) + parseInt(numTwo);
      // document.write(theProduct);
      // document.write(theTotal);
      console.log("Product: " + theProduct);
      console.log("Total: " + theTotal);
}
应该是这样的

功能域{ var numOne=document.getElementById'num1'。值; var numTwo=document.getElementById'num2'。值; var theProduct=parseIntnumOne*parseIntnumTwo; 文件。书面产品; } 应该是这样的

功能域{ var numOne=document.getElementById'num1'。值; var numTwo=document.getElementById'num2'。值; var theProduct=parseIntnumOne*parseIntnumTwo; 文件。书面产品;
} 我看到你写的一切都很好!除了您的代码中有一个输入错误,my_input1应该是numOne,第二个输入也应该是一样的。检查下面的代码片段

功能域{ var numOne=document.getElementById'num1'。值; var numTwo=document.getElementById'num2'。值; var theProduct=parseIntnumOne*parseIntnumTwo; 文件。书面产品; } 第一个数字 第二个号码:
我看到你写的一切都很好!除了您的代码中有一个输入错误,my_input1应该是numOne,第二个输入也应该是一样的。检查下面的代码片段

功能域{ var numOne=document.getElementById'num1'。值; var numTwo=document.getElementById'num2'。值; var theProduct=parseIntnumOne*parseIntnumTwo; 文件。书面产品; } 第一个数字 第二个号码: 第一个数字 第二个号码: 功能域{ var numOne=document.getElementById'num1'。值; var numTwo=document.getElementById'num2'。值; var theProduct=parseIntnumOne*parseIntnumTwo; log'Product:'+theProduct+'\nSum:'+parseIntnumOne+parseIntnumTwo; } 第一个数字 第二个号码: 功能域{ var numOne=document.getElementById'num1'。值; var numTwo=document.getElementById'num2'。值; var theProduct=parseIntnumOne*parseIntnumTwo; log'Product:'+theProduct+'\nSum:'+parseIntnumOne+parseIntnumTwo; } 使用parseIntnumOne,10*parseIntnumTwo,10;代替my_input1&my_input2。使用parseInt时还要注意传递基数

功能域{ var numOne=document.getElementById'num1'。值; var numTwo=document.getElementById'num2'。值; var theProduct=parseIntnumOne,10*parseIntnumTwo,10; 文件。书面产品; } 第一个数字 第二个号码: 使用parseIntnumOne,10*parseIntnumTwo,10;代替my_input1&my_input2。使用parseInt时还要注意传递基数

功能域{ var numOne=document.getElementById'num1'。值; var numTwo=document.getElementById'num2'。值; var theProduct=parseIntnumOne, 10*parseIntnumTwo,10; 文件。书面产品; } 第一个数字 第二个号码: 此代码有效

功能域{ var numOne=document.getElementById'num1'。值; var numTwo=document.getElementById'num2'。值; var theProduct=parseIntnumOne*parseIntnumTwo; var p=document.getElementById'theProduct'; p、 innerHTML+=产品; } 第一个数字 第二个号码: 此代码有效

功能域{ var numOne=document.getElementById'num1'。值; var numTwo=document.getElementById'num2'。值; var theProduct=parseIntnumOne*parseIntnumTwo; var p=document.getElementById'theProduct'; p、 innerHTML+=产品; } 第一个数字 第二个号码:
这是您正确的代码验证,在上面的代码中您没有定义my_input1和my_input2

功能域{ var numOne=document.getElementById'num1'。值; var numTwo=document.getElementById'num2'。值; var theProduct=parseIntnumOne*parseIntnumTwo; 文件。书面产品; } 第一个数字 第二个号码:
这是您正确的代码验证,在上面的代码中您没有定义my_input1和my_input2

功能域{ var numOne=document.getElementById'num1'。值; var numTwo=document.getElementById'num2'。值; var theProduct=parseIntnumOne*parseIntnumTwo; 文件。书面产品; } 第一个数字 第二个号码:
您已解析my_input1-没有my_input1。下面是正确的工作示例

功能域{ var numOne=document.getElementById'num1'。值; var numTwo=document.getElementById'num2'。值; var theProduct=parseIntnumOne*parseIntnumTwo;console.log theProduct; document.getElementById'ans'。innerHTML=产品; } 第一个数字 第二个号码:

产品:


您已解析my_input1-没有my_input1。下面是正确的工作示例

功能域{ var numOne=document.getElementById'num1'。值; var numTwo=document.getElementById'num2'。值; var theProduct=parseIntnumOne*parseIntnumTwo;console.log theProduct; document.getElementById'ans'。innerHTML=产品; } 第一个数字 第二个号码:

产品: //您在此的功能: /*功能域{ var numOne=document.getElementById'num1'。值; var numTwo=document.getElementById'num2'。值; var theProduct=parseIntmy\u input1*parseIntmy\u input2; 文件。书面产品; 文件。书面产品; }*/ //新功能 功能域{ 变量stringVals=[ document.getElementById'num1'。值, document.getELementById'num2'。值 ]; var actualVals=vals.mapval=>parseIntval .filterval=>!isNaNval; var sum=actualVals.reducecurrentVal,nextVal=>currentVal+nextVal,0; var乘积=实际值.reducecurrentVal,nextVal=>currentVal*nextVal,1; document.getElementById'theSum'。innerHTML='Sum:'+Sum; document.getElementById'theProduct'。innerHTML='Product:'+Product; } 第一个数字 第二个号码: //在这里包含代码片段中的JS。 //您在此的功能: /*功能域{ var numOne=document.getElementById'num1'。值; var numTwo=document.getElementById'num2'。值; var theProduct=parseIntmy\u input1*parseIntmy\u input2; 文件。书面产品; 文件。书面产品; }*/ //新功能 功能域{ 变量stringVals=[ document.getElementById'num1'。值, document.getELementById'num2'。值 ]; var actualVals=vals.mapval=>parseIntval .filterval=>!isNaNval; var sum=actualVals.reducecurrentVal,nextVal=>currentVal+nextVal,0; var乘积=实际值.reducecurrentVal,nextVal=>currentVal*nextVal,1; document.getElementById'theSum'。innerHTML='Sum:'+Sum; document.getElementById'theProduct'。innerHTML='Product:'+Product; } 第一个数字 第二个号码: //在这里包含代码片段中的JS。


所有其他答案都是正确的,这意味着您对对象名称的定义不正确。但我只是添加了额外的方法,而不使用parseInt

如果使用这些输入type=number而不是type=text,则不需要执行ParseInt

功能域{ var numOne=document.getElementById'num1'。值; var numTwo=document.getElementById'num2'。值; var theProduct=numOne*numTwo; 文件。书面产品; } 第一个数字 第二个号码: 全部o 答案是好的,这意味着您对对象名称的定义不正确。但我只是添加了额外的方法,而不使用parseInt

如果使用这些输入type=number而不是type=text,则不需要执行ParseInt

功能域{ var numOne=document.getElementById'num1'。值; var numTwo=document.getElementById'num2'。值; var theProduct=numOne*numTwo; 文件。书面产品; } 第一个数字 第二个号码:
对于此代码,您只需做一个小更改:

第一个数字 第二个号码: 功能域{ var numOne=document.getElementById'num1'。值; var numTwo=document.getElementById'num2'。值; var theProduct=parseIntnumOne*parseIntnumTwo; 文件。书面产品; }
对于此代码,您只需做一个小更改:

第一个数字 第二个号码: 功能域{ var numOne=document.getElementById'num1'。值; var numTwo=document.getElementById'num2'。值; var theProduct=parseIntnumOne*parseIntnumTwo; 文件。书面产品; }
my_input1和my_input2未在任何位置声明。嗨,my_input1和my_input2未定义。numOne和numTwo如果参数我认为您需要parseIntnumOne*parseIntnumTwomy_input1和my_input2,则不会在任何地方声明。您好,my_input1和my_input2未定义。numOne和numTwo如果参数认为您需要parseIntnumOne*ParseIntNumtwob,因为有两个document.writetheProduct;英雄联盟我把它去掉了p因为有两个document.writetheProduct;英雄联盟我把它去掉了pDid是否检查以计算小数?是否检查以计算小数?