JSFiddle - React, Tailwind, and code Playground
by diessses
HTML
<head>
<style>
#loading, #results {
display:none;
}
</style>
</head>
<body class="bg-dark">
<div class="row">
<form name="loanform">
<div class="form-group">
<div class="input-group">
<span class="badge badge-success" style="font-size: 15px">Loan calc</span>
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text">total amount</div>
</div>
<input type="number" class="form-control" id="amount" name="amount" placeholder="">
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text">downpayment</div>
</div>
<input type="number" class="form-control" id="downpayment" name="downpayment" placeholder="downpayment">
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text">payment years</div>
</div>
<select class="form-control" class="form-control" id="years" name="years">
</select>
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text">start paying month</div>
</div>
<select class="form-control" class="form-control" id="s_month" name="s_month">
</select>
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text">Select start paying year</div>
</div>
<select class="form-control" class="form-control" id="s_year" name="s_year">
</select>
</div>
</div>
<div class="form-group">
<div class="input-group">
OPTION
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text">Combined bouns paying</div>
</div>
<input type="number" class="form-control"...
JavaScript
/**
* ENG
*/
var elementId = {
downpayment: "downpayment",
amount: "amount",
cb_amount: "cb_amount",
years: "years",
s_month: "s_month",
s_year: "s_year",
}
/**
* DOMLoaded
*/
document.addEventListener("DOMContentLoaded", function(e) {
// submit
document.loanform.addEventListener('submit', function(e) {
onSubmit(e);
});
//
setSelectBoxElement();
}, false)
/**
*
*/
function onSubmit(e) {
//
if (checkValue()) {
//
document.getElementById('results').style.display = 'block'; // 計算結果表示エリア
document.getElementById('loading').style.display = 'block'; // loading.gif
//
setTimeout(calculateResults, 1200);
}
e.preventDefault();
}
/**
* ド
*/
function setSelectBoxElement() {
// years
let years = document.getElementById(elementId.years);
SelectboxManager.addSelectboxFromObject(years, yearsElement);
//
let payMonth = document.getElementById(elementId.s_month);
SelectboxManager.addBlankValue(payMonth, "Select Month");
SelectboxManager.addSelectboxFromArray(payMonth, payMonthElement);
//
let payYear = document.getElementById(elementId.s_year);
SelectboxManager.addSelectboxFromArray(payYear, getPayYearElement());
}
/**
* check
* @return チェックOK:true, チェックNG:false
*/
function checkValue() {
let rtn = true; //
let downpayment = document.getElementById(elementId.downpayment).value; //
let amount = document.getElementById(elementId.amount).value; //
let cb_amount = document.getElementById(elementId.cb_amount).value; //
let selectedYears = document.getElementById(elementId.years).value; //
//
if (!amount) {
//
showError("err 1");
rtn = false;
}
else if (!selectedYears) {
//
showError("err 2");
rtn = false;
}
//
if (rtn) {
if (cb_amount > ( amount - downpayment ) / 2 ) {
showError("err 3");
rtn = false;
}
}
//
return rtn;
}
/**
* Interest calc
*/
function calculateResults(e) {
let downpayment =...