JavaScript getElementById始终返回null(JavaScript getElementById always returning null)

编程入门 行业动态 更新时间:2024-10-25 06:31:08
JavaScript getElementById始终返回null(JavaScript getElementById always returning null)

我正在尝试建立一个简单的预算计算器,每次我点击我的提交按钮我没有任何反应。 当我尝试在控制台中检查我的变量值时,即使我在输入框中输入了值,它们也显示为null。 谁能告诉我我做错了什么? 在查看了其他问题后,我找不到与我的问题相关的答案。

<!DOCTYPE html> <html> <head> <title>Budget Calculator</title> <style> input {display:block;} #clear {float:left;} #submit {float:left;} </style> <script type="text/javascript"> var kms = document.getElementById("kmTravelled"); var rent = document.getElementById("rentPerMonth"); var carCost = document.getElementById("carPayment"); var costPerTrip = (kms/12.75)*20; var total = Math.round((costPerTrip + rent + carCost)*100)/100; function calculate() { document.getElementById("calculator").innerHTML = total; } </script> </head> <body> <form id="myForm")> Km travelled per day: <input type="number" name="kmTravelled" /> Rent per month: <input type="number" name="rentPerMonth" /> Car payment per month: <input type="number" name="carPayment" /> </form> <button id="submit" type="button" onclick="calculate();"> Submit </button> <button id="clear" type="clear"> Clear </button> <p id = "calculator"> </p> <script> calculate(); </script> </body>

I am trying to build a simple budget calculator, everytime I click my submit button I nothing happens. When I try to check my variable values in the console they show null, even after I have typed values in my input boxes. Can anyone tell me what I'm doing wrong? After looking through other questions on here I haven't been able to find an answer that relates to my issue.

<!DOCTYPE html> <html> <head> <title>Budget Calculator</title> <style> input {display:block;} #clear {float:left;} #submit {float:left;} </style> <script type="text/javascript"> var kms = document.getElementById("kmTravelled"); var rent = document.getElementById("rentPerMonth"); var carCost = document.getElementById("carPayment"); var costPerTrip = (kms/12.75)*20; var total = Math.round((costPerTrip + rent + carCost)*100)/100; function calculate() { document.getElementById("calculator").innerHTML = total; } </script> </head> <body> <form id="myForm")> Km travelled per day: <input type="number" name="kmTravelled" /> Rent per month: <input type="number" name="rentPerMonth" /> Car payment per month: <input type="number" name="carPayment" /> </form> <button id="submit" type="button" onclick="calculate();"> Submit </button> <button id="clear" type="clear"> Clear </button> <p id = "calculator"> </p> <script> calculate(); </script> </body>

最满意答案

我建议使用id属性并移动部分以获取函数内部的值,以及获取value属性并将字符串值转换为数字以进行计算。

function calculate() {
    var kms = +document.getElementById("kmTravelled").value;
    var rent = +document.getElementById("rentPerMonth").value;
    var carCost = +document.getElementById("carPayment").value;
    var costPerTrip = (kms / 12.75) * 20;
    var total = Math.round((costPerTrip + rent + carCost) * 100) / 100;

  document.getElementById("calculator").innerHTML = total;
} 
  
input { display: block; }
#clear { float: left; }
#submit { float: left; } 
  
<form id="myForm">
  Km travelled per day: <input type="number" name="kmTravelled" id="kmTravelled"/> Rent per month: <input type="number" name="rentPerMonth" id="rentPerMonth" /> Car payment per month: <input type="number" name="carPayment" id="carPayment" />
</form>
<button id="submit" type="button" onclick="calculate();">Submit</button>
<button id="clear" type="clear">Clear</button>
<p id="calculator"></p> 
  
 

I suggest to use id attributes and move the parts for getting the values inside of the function, as well as getting value property and cast the string value to number for calculation.

function calculate() {
    var kms = +document.getElementById("kmTravelled").value;
    var rent = +document.getElementById("rentPerMonth").value;
    var carCost = +document.getElementById("carPayment").value;
    var costPerTrip = (kms / 12.75) * 20;
    var total = Math.round((costPerTrip + rent + carCost) * 100) / 100;

  document.getElementById("calculator").innerHTML = total;
} 
  
input { display: block; }
#clear { float: left; }
#submit { float: left; } 
  
<form id="myForm">
  Km travelled per day: <input type="number" name="kmTravelled" id="kmTravelled"/> Rent per month: <input type="number" name="rentPerMonth" id="rentPerMonth" /> Car payment per month: <input type="number" name="carPayment" id="carPayment" />
</form>
<button id="submit" type="button" onclick="calculate();">Submit</button>
<button id="clear" type="clear">Clear</button>
<p id="calculator"></p> 
  
 

更多推荐

本文发布于:2023-08-06 16:24:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1451536.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:getElementById   JavaScript   returning   null

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!