gpt4 book ai didi

JavaScript,不打印

转载 作者:行者123 更新时间:2023-11-28 09:03:47 24 4
gpt4 key购买 nike

我正在开发一个函数,该函数可以执行基本的贷款摊销,当我使用“提示”获取输入时该函数起作用。从那开始到使用表格,有些事情不太正确。我试图将同一张表打印到 div 区域,但目前无法获取它。我确信这只是我的菜鸟眼睛,但我不知道我在这方面错在哪里......

感谢您花时间帮助民众。

html -

 <!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Loan Amortization</title>
<script type="text/javascript" src="LoanAmortization.js"></script>
</head>

<body>
<h1>Loan Amortization</h1>


<fieldset>
<legend>Inputs</legend>
<form>
Principal: <input type="text" id="principalInput" /><br />
Interest: <input type="text" id="interestInput" /><br />
Terms: <select id="termsInput">

<option>12 months</option>
<option>24 months</option>
<option>36 months</option>
<option>48 months</option>
<option>60 months</option>
</select> <br />
<input type="button" id="myButton" value="Click this!"
onclick="amort('principalInput','interestInput','termsInput',
'myDiv')" />
</form>
</fieldset>


<fieldset>
<legend>Outputs</legend>

<div id="myDiv">


</div>
</fieldset>

</body>

JS -

    function amort(principalInput, interestInput, termsInput)
{
total = parseInt(document.getElementById(principalInput).value);
var monthlyRate = parseFloat
(document.getByElementId(interestInput).value)/12;
var payment = total * (monthlyRate/(1-Math.pow(
1+monthlyRate, -terms)));

var result = "Loan amount: $" + principalInput.toFixed(2) + "<br />" +
"Interest rate: " + (interestInput*100).toFixed(2) + "%<br />" +
"Number of months: " + termsInput + "<br />" +
"Monthly payment: $" + payment.toFixed(2) + "<br />" +
"Total paid: $" + (payment * terms).toFixed(2) + "<br /><br />";

result += "<table border='1'><tr><th>Month</th><th>Balance</th>" +
"<th>Interest</th><th>Principal</th>";

// insert your code here
var i = 1;

var interestPaid = (total * monthlyRate);
var principalPaid = payment - interestPaid;

while(i <= terms){
result+= "<tr><td>" + i + "</td>";
result+= "<td>" + total.toFixed(2) + "</td>";
result+= "<td>" + interestPaid.toFixed(2) + "</td>";
result+= "<td>" + principalPaid.toFixed(2) + "</td>";
result+= "</tr>";
total = total - principalPaid;
interestPaid = total * monthlyRate;
principalPaid = payment - interestPaid;
i++;
}

result += "</table>";
document.getElementById('myDiv').innerHTML = result;
}

最佳答案

首先,您要调用 amort有四个参数的函数:

onclick="amort('principalInput','interestInput','termsInput','myDiv')"

但它只定义为接受三个:

function amort(principalInput, interestInput, termsInput)

将第四个参数添加到函数定义中,然后在函数中使用它,而不是硬编码输出 div 名称。

下一步,terms在使用之前没有定义。您需要添加一行,以便从表单输入中解析它。您需要添加value属性 option HTML 表单中的标签,以便您可以阅读许多术语。请参阅 MDN 页面 <select> 有关该语法的示例。

您还调用 principalInput.toFixed(2)principalInput不是一个数字。您可以在代码的前面部分从该字段读取值。我认为您的意思是使用它。

关于JavaScript,不打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17376062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com