未能计算汽车贷款的每月总付款。出了什么问题?

时间:2015-06-14 03:18:30

标签: javascript html css superscript

更新了代码。 calculate()仍然不起作用。每月付款金额最终没有转移到"总计" id框。有没有人看到底层问题是什么?我的语法似乎是正确的,我相信我的规范在代码中应用每个变量的位置可能存在问题。

我在使用函数calculate()在" total中传递正确的结果时遇到问题。"任何可能的解决方单击计算按钮的操作应显示总计,但根本不显示任何内容,就像按钮根本不激活计算功能一样。

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript">
function calculate() {
var P = document.getElementById("price").value;
var D = document.getElementById("DP").value;
var R = document.getElementById("R").value;
var N = document.getElementById("N").value;
var i = (R / 1200);
var n = (N * 12);
var m = ((P - D) * i * Math.pow(1 + i,n)) / (Math.pow(1 + i,n) - 1);
var result = document.getElementById('total');
    result.value = m;}
</script>
</head>
<div align="center">
    <hr>
    <form name id="Main">
        <input type="number" id="price" placeholder="Price of the Car"/>
        <br>
        <br>
        <input type="number" id="DP" placeholder="Down Payment"/>
        <br>
        <br>
        <input type="number" id="R" placeholder="Annual % Rate"/>
        <br>
        <br>
        <input type="number" id="N" placeholder="# of Years Loaned"/>
        <br>
        <br>
        <input type="button" id="calculate" value="Calculate" onclick="javascript:calculate();"/>
        <br>
        <br>
        <input type="number" id="total" placeholder="Total Cost..." readonly=""/>
        <br>
        <br>
        <input type="reset" value="Reset">
    </form>
    <hr>
</div>
</html>

3 个答案:

答案 0 :(得分:3)

请改用Math.pow()功能。 ^运算符不适用于数学幂运算(请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Bitwise_XORhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/pow)。

此外,它是result.value = m,而不是相反:)

另外2:RM似乎未定义,我必须使用某些内容初始化这些变量,就像使用PD一样。

另外3:使用chrome dev工具或类似的东西。它会让你的生活更轻松。请记住,javascript并不意味着“没有IDE”:D

答案 1 :(得分:3)

不幸的是,您的原始代码永远不会有效,因为它有太多错误 这是给你纠正的小提琴,请看看: http://jsfiddle.net/q330fqw8/

function calculate() {
  var P = document.getElementById("price").value;
  var D = document.getElementById("DP").value;
  var R = document.getElementById("R").value;
  var N = document.getElementById("N").value;
  var i = (R / 1200);
  var n = (N * 12);
  var m = ((P - D) * i * Math.pow(1 + i,n)) / (Math.pow(1 + i,n) - 1);
  var result = document.getElementById('total');
  result.value = m;
}

我在HTML中删除了id="calculate",因为这样:Why JS function name conflicts with element ID?
在Javascript中,应正确设置4个变量PDRN。最后,这m.value = result; - &gt; result.value = m;
但我想,你已经纠正了问题中的一些错误。我使用了原始代码。

答案 2 :(得分:0)

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function calculate() {
    var P = document.getElementById("price").value;
    var D = document.getElementById("DP").value;
    var R = document.getElementById("R").value;
    var N = document.getElementById("N").value;
    var i = (R / 1200);
    var n = (N * 12);
    var m = ((P - D) * i * Math.pow(1 + i,n)) / (Math.pow(1 + i,n) - 1);
    var result = document.getElementById('total');
        result.value = m;}
</script>
</head>
<div align="center">
<hr/>
<form id="Main">
    <input type="number" id="price" placeholder="Price of the Car" />
    <br />
    <br/>
    <input type="number" id="DP" placeholder="Down Payment" />
    <br/>
    <br/>
    <input type="number" id="R" placeholder="Annual % Rate" />
    <br/>
    <br/>
    <input type="number" id="N" placeholder="# of Years Loaned" />
    <br/>
    <br/>
    <input type="button" value="Calculate Monthly Payment" onclick="calculate();" />
    <br/>
    <br/>
    Total Monthly Payment:<input type="number" id="total" placeholder="Total Cost..." readonly="" />
    <br/>
    <br/>
    <input type="reset" value="Reset" />
</form>
<hr/>
</div>