[英]JavaScript, not printing
我正在使用一個基本貸款攤銷功能,該功能在使用“提示”獲取輸入時有效。 從那到使用表單,有些事情是不正確的。 我正在嘗試獲取同一張表以打印到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
屬性添加到HTML表單中的option
標簽中,以便您可以閱讀許多術語。 有關該語法外觀的示例,請參見<select>
的MDN頁面。
當principalInput
不是數字時,您還要調用principalInput.toFixed(2)
。 您在代碼前面的那個字段中讀取了一個值。 我認為您的意思是改用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.