效果图如下:
代码:
<html>
<head>
<meta charset="GBK"/>
<title>计算利息工具</title>
<style>
#loantable tr{
height:35px;
width:180px;
}
#loantable td{
height:35px;
width:180px;
}
#loantable th{
height:35px;
width:180px;
}
#loantable2 {border-collapse:collapse;}
#loantable2 tr{
height:35px;
width:100%;
}
#loantable2 td{
height:35px;
width:120px;
border:1px solid #000;
text-align:center;
}
#loantable2 th{
height:35px;
width:120px;
border:1px solid #000;
text-align:center;
}
.sss{
width:180px;
height:30px;
}
</style>
<script type="text/JavaScript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script type="text/JavaScript">
function autoSubmit(){
var loanamt=$("#loanamt").val();
var loanrate=$("#loanrate").val();
var loantm=$("#loantm").val();
var danwei=$("#danwei").val();
var repaytype=$("#repaytype").val();
if(loanamt==""){
alert("请输入借款金额");
return;
}
if(loanrate==""){
alert("请输入年化利率");
return;
}
if(loantm==""){
alert("请输入借款时间");
return;
}
if(repaytype==""){
alert("请输入还款方式");
return;
}
var loanamt1=loanamt;
$("#loanamt1").val(loanamt1);
var loanrate1=loanrate;
var repayfee=0.00;
loanrate1=(loanrate/12).toFixed(2);
if(danwei=='1'){//年
repayfee=(loanamt*loanrate*loantm/100).toFixed(2);
}else if(danwei=='3'){//日
repayfee=(loanamt*loanrate*loantm/360/100).toFixed(2);
}else{//月
repayfee=(loanamt*loanrate*loantm/12/100).toFixed(2);
}
$("#loanrate1").val(loanrate1);
$("#repayfee").val(repayfee);
var repayamt=(parseFloat(loanamt1)+parseFloat(repayfee)).toFixed(2);//应还总金额
$("#repayamt").val(repayamt);
var qihao=1;
if(repaytype =="3"){//一次性还款
qihao=1;
}else{
if(danwei =="1"){//年
qihao=loantm*12;
}else if(danwei =="3"){//日
qihao=Math.ceil(loantm/30);
}else{
qihao=loantm;
}
}
$("#qihao").html(qihao);
var params = [];
if(repaytype =="3"){//一次性还款
var benxi=repayamt;
var benjin=parseFloat(loanamt1).toFixed(2);
var lixi=parseFloat(repayfee).toFixed(2);
var lastamt=parseFloat(repayamt).toFixed(2);
params.push({"benxi":benxi,"benjin":benjin,"lixi":lixi,"lastamt":lastamt});
}else if(repaytype =="1"){//等额本息
var benxi=(repayamt/qihao).toFixed(2);
var benjin=(loanamt1/qihao).toFixed(2);
var yihuan=0;//已还
var rlixi=0;//已还总利息
var rbenjin=0;//已还总本金
for(var i=1;i<=parseInt(qihao);i++){
if(parseInt(qihao)==1){
var benxi=parseFloat(benxi).toFixed(2);
var benjin=parseFloat(loanamt1).toFixed(2);
var lixi=(parseFloat(benxi)-parseFloat(benjin)).toFixed(2);
var lastamt=parseFloat(benxi).toFixed(2);
params.push({"benxi":benxi,"benjin":benjin,"lixi":lixi,"lastamt":lastamt});
}else{
if(i==parseInt(qihao)){
var benjin=parseFloat(loanamt1-rbenjin).toFixed(2);
var lixi=parseFloat(repayfee-rlixi).toFixed(2);
var benxi=(parseFloat(benjin)+parseFloat(lixi)).toFixed(2);
var lastamt=(parseFloat(repayamt)-parseFloat(yihuan)).toFixed(2);
params.push({"benxi":benxi,"benjin":benjin,"lixi":lixi,"lastamt":lastamt});
}else{
var benxi=parseFloat(benxi).toFixed(2);
var benjin=parseFloat(benjin).toFixed(2);
var lixi=parseFloat(benxi-benjin).toFixed(2);
var lastamt=(parseFloat(repayamt)-parseFloat(yihuan)).toFixed(2);
yihuan=parseFloat(yihuan)+parseFloat(benxi);
rlixi=parseFloat(lixi)+parseFloat(rlixi);
rbenjin=parseFloat(rbenjin)+parseFloat(benjin);
params.push({"benxi":benxi,"benjin":benjin,"lixi":lixi,"lastamt":lastamt});
}
}
}
}else{//每月还息,到期还本
var benxi=(repayfee/qihao).toFixed(2);
var benjin=0;
var yihuan=0;//已还
var rlixi=0;//已还总利息
for(var i=1;i<=parseInt(qihao);i++){
if(parseInt(qihao)==1){
var benxi=parseFloat(repayamt).toFixed(2);
var benjin=parseFloat(loanamt1).toFixed(2);
var lixi=parseFloat(benxi-benjin).toFixed(2);
var lastamt=parseFloat(benxi).toFixed(2);
params.push({"benxi":benxi,"benjin":benjin,"lixi":lixi,"lastamt":lastamt});
}else{
if(i==parseInt(qihao)){
var benjin=parseFloat(loanamt1).toFixed(2);
var lixi=(parseFloat(repayfee)-parseFloat(rlixi)).toFixed(2);
var benxi=(parseFloat(benjin)+parseFloat(lixi)).toFixed(2);
var lastamt=(parseFloat(repayamt)-parseFloat(yihuan)).toFixed(2);
params.push({"benxi":benxi,"benjin":benjin,"lixi":lixi,"lastamt":lastamt});
}else{
var benxi=parseFloat(benxi).toFixed(2);
var benjin=parseFloat(benjin).toFixed(2);
var lixi=parseFloat(benxi-benjin).toFixed(2);
var lastamt=(parseFloat(repayamt)-parseFloat(yihuan)).toFixed(2);
yihuan=parseFloat(yihuan)+parseFloat(benxi);
rlixi=parseFloat(lixi)+parseFloat(rlixi);
params.push({"benxi":benxi,"benjin":benjin,"lixi":lixi,"lastamt":lastamt});
}
}
}
}
$("#sdata").empty();
var tbody="";
for(var j = 0;j<params.length;j++){
tbody=tbody+"<tr><td>"+(j+1)+"</td><td>"+params[j].benxi+"</td><td>"+params[j].benjin+"</td><td>"+params[j].lixi+"</td><td>"+params[j].lastamt+"</tr>";
}
$("#sdata").append(tbody);
}
</script>
</head>
<body style="margin:0 auto;">
<div style="margin:0 auto; width:100%">
<div style="margin-top:20px;float:left;">
<table id="loantable">
<tr align="right">
<td>
借款金额:
</td>
<td>
<input id="loanamt" value="" class="sss"/>
</td>
</tr>
<tr align="right">
<td>
约定年化(%):
</td>
<td>
<input id="loanrate" value="" class="sss"/>
</td>
</tr>
<tr align="right">
<td>
借款时间:
</td>
<td>
<input id="loantm" value="" style="height:30px;width:133px;"/> <select id="danwei" style="height:30px;"><option value="1">年</option><option value="2">月</option><option value="3">日</option></select>
</td>
</tr>
<tr align="right">
<td>
还款方式:
</td>
<td>
<select id="repaytype" class="sss"><option value="1">按月还款、等额本息</option><option value="2">每月付息,到期还本</option><option value="3">一次还款</option></select>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="button" class="sss" style="margin-left:30px;" οnclick="autoSubmit();" value="计算">
</td>
</tr>
</table>
</div>
<div style="margin-top:25px;">
<table id="loantable">
<tr align="right">
<td>
计算结果:
</td>
</tr>
<tr align="right">
<td>
借款总额:
</td>
<td>
<input id="loanamt1" value="" class="sss"/>
</td>
</tr>
<tr align="right">
<td>
月利率(%):
</td>
<td>
<input id="loanrate1" value="" class="sss"/>
</td>
</tr>
<tr align="right">
<td>
应还利息:
</td>
<td>
<input id="repayfee" value="" class="sss"/>
</td>
</tr>
<tr align="right">
<td>
应还本息总额:
</td>
<td>
<input id="repayamt" value="" class="sss"/>
</td>
</tr>
</table>
</div>
<div style="width:100%;margin-top:20px;margin-left:60px;background-color:#fff">
还款计划:总期数:<span id="qihao"></span>
<table id="loantable2">
<th>期号</th>
<th>月还本息</th>
<th>月还本金</th>
<th>月还利息</th>
<th>本息余额</th>
<tbody id="sdata"></tbody>
</table>
</div>
</div>
</body>
</html>