【发布时间】:2017-04-13 14:16:24
【问题描述】:
我正在尝试用 javascript 制作一个计算抵押贷款的表格,然后将结果呈现到页面上。 这是我的表格:
<form name="calc" id="lidd_mc_form" class="lidd_mc_form" method="post">
<div class="lidd_mc_input mortgage lidd_mc_input_light lidd_mc_input_responsive"><label for="lidd_mc_total_amount">Mortgage Required <note style="color: grey;">(omit commas)</note></label><input type="text" name="lidd_mc_total_amount" id="lidd_mc_total_amount" placeholder="£"><span id="lidd_mc_total_amount-error"></span></div><div class="lidd_mc_input down_payment lidd_mc_input_light lidd_mc_input_responsive"><div style="visibility: hidden; position: absolute;"><label for="lidd_mc_down_payment">Down Payment</label><input type="text" name="lidd_mc_down_payment" id="lidd_mc_down_payment" placeholder="£"><span id="lidd_mc_down_payment-error"></span></div></div><div class="lidd_mc_input interest_rate lidd_mc_input_light lidd_mc_input_responsive"><label for="lidd_mc_interest_rate">Interest Rate <note style="color: grey;">(enter 10% as 10)</note></label><input type="text" name="lidd_mc_interest_rate" id="lidd_mc_interest_rate" placeholder="%"><span id="lidd_mc_interest_rate-error"></span></div><div class="lidd_mc_input amortization_period lidd_mc_input_light lidd_mc_input_responsive"><label for="lidd_mc_amortization_period">Repayment Period <note style="color: grey;">(omit commas)</note></label><input type="text" name="lidd_mc_amortization_period" id="lidd_mc_amortization_period" placeholder="years"><span id="lidd_mc_amortization_period-error"></span></div>
<input type="hidden" name="lidd_mc_payment_period" id="lidd_mc_payment_period" value="12"><div class="lidd_mc_input">
<input type="button" onclick="calc()" name="lidd_mc_submit" id="lidd_mc_submit" value="Calculate"></div></form>
<div id="lidd_mc_details" class="lidd_mc_details" style="display: none;"><div id="lidd_mc_results" class="lidd_mc_results"></div>
<div id="lidd_mc_summary" class="lidd_mc_summary lidd_mc_summary_light" style="display: block;"></div>
</div>
这是我正在使用的 Javascript:
<script>
function calc() { /** * Created by Connor on 13/04/2017. */
var mortgageRequired = document.forms["calc"]["lidd_mc_total_amount"].value;
var interestRate = document.forms["calc"]["lidd_mc_interest_rate"].value;
var repaymentPeriod = document.forms["calc"]["lidd_mc_amortization_period"].value;
//Calculation
//calculate repayment period in months
var repaymentMonthly = repaymentPeriod * 12;
//Capital Payment
var capitalPayment = mortgageRequired * (((interestRate / 12) * (1 + interestRate / 12) ^ repaymentMonthly) /
((1 + (interestRate / 12)) ^ repaymentMonthly - 1));
//Interest Only
var noInterest = mortgageRequired / repaymentMonthly;
var interestOnly = capitalPayment - noInterest;
//Display
document.getElementById('lidd_mc_details').innerHTML +=
interestOnly & capitalPayment;
} </script>
问题是页面刷新,而且根本不起作用,因为它不会向页面呈现任何内容,即使输入是按钮而不是提交
我也在尝试使代码不会刷新用户页面并且是异步的,这是正确的做法吗?
我对 JavaScript 非常陌生,如果有任何反馈,我将不胜感激!
【问题讨论】:
-
除了页面刷新问题,你还有什么问题?
-
"is this the right way of doing so?"- 它做你想做的事吗? -
确保为函数命名,以便实际调用它们。
-
Scott- 为清楚起见编辑了问题;大卫 - 目前没有,我的意思是良好的实践和标准,以便我可以改进; Jesse - 这个函数不是叫做 calc 吗?;
标签: javascript ajax forms calculator