Input field( amount
) と Radio button( tType
) から動的に値を取得し、それらを の形式で配列にプッシュしたいと考えています(amount,date,tType)
。次に、配列で 2 つのことをしたいと思います:1。すべての金額を取得し、それらを合計して合計を取得します。2. 配列内のすべてのデータを一覧表示します。ここに私が持っているものがあります:
var Transaction = function(amount) {
this.amount = amount
this.date = (function() {
var d = new Date();
var minutes = d.getMinutes();
var month = d.getMonth() +1;
if (minutes<10) {
return (d.getDate() + "/" + month + "/" + d.getFullYear() + " " + d.getHours() + ":" + "0" + minutes);
} else {
return (d.getDate() + "/" + month + "/" + d.getFullYear() + " " + d.getHours() + ":" + minutes);
}
})();
var radios = document.getElementsByName('tType');
for (var i = 0, length = radios.length; i < length; i++) {
if (radios[i].checked) {
// do whatever you want with the checked radio
return(radios[i].value);
// only one radio can be logically checked, don't check the rest
break;
}
}
this.type= radios;
};
var movements =[];
var allAmounts = [];
function clearFields(){
document.getElementById("initialAmount").value="";
document.getElementById("amountIn").value="";
document.getElementById("amountOut").value="";
};
//addInitialBalance
function addInitialBalance(){
var a = Number(document.getElementById("initialAmount").value);
var initialBalance = new Transaction(a);
movements.unshift([initialBalance.amount,initialBalance.date,initialBalance.type]);
}
//add IN
function addIn(){
var aI = Number(document.getElementById("amountIn").value);
var aIn = new Transaction(aI);
movements.push([aIn.amount,aIn.date, aIn.type]);
}
//add OUT
function addOut(){
var aO = Number(document.getElementById("amountOut").value);
var aOut = new Transaction(-aO);
movements.push([aOut.amount, aOut.date, aOut.type]);
}
//display movements
function list(){
var html=" "
for(var i in movements){
html+=("<p>" + movements[i][0]+ " " + movements[i][1] + " " + movements[i][2] + "</p>")}
document.getElementById("listSpace").innerHTML = html;
}
//get the total
function getTotal(){
for(var j in movements){
allAmounts.push(movements[j][0]);
}
var total = (allAmounts.reduce(function(a,b){
return a+b ;
},0));
document.getElementById("total").innerHTML = ("Your current balance is " +total);
}
これは、getTotal() および list() 関数の呼び出しと表示に関連する私の html です。
<div data-role="content" >
<span id="total" style="text-align:center"></span>
</div>
<p style="text-align: center;" >
<b style="margin-top:10%" onClick="getTotal()"><button>Calculate</button>
</b>
</p>
</div>
<div data-role="collapsible-set">
<div data-role="collapsible" data-collapsed="true" onClick="list()">
<h3>
10 Last movements
</h3>
<div data-controltype="textblock"><span id="listSpace"> </span>
</div>
私が間違っていることを理解できません。ボタンを押してcalculate
も何も起こりませんcollapsible onClick
。どんな助けでも大歓迎です