Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从输入和单选按钮中动态获取值,将它们按入数组并调用它们进行各种计算_Javascript_Html_Arrays - Fatal编程技术网

Javascript 如何从输入和单选按钮中动态获取值,将它们按入数组并调用它们进行各种计算

Javascript 如何从输入和单选按钮中动态获取值,将它们按入数组并调用它们进行各种计算,javascript,html,arrays,Javascript,Html,Arrays,我想从输入字段(amount)和单选按钮(tType)中动态获取值,并将它们按(amount,date,tType)格式放入数组中。然后我想对数组做两件事:1。把所有的金额加起来,得到总数。2.列出数组中的所有数据。以下是我所拥有的: var Transaction = function(amount) { this.amount = amount this.date = (function() { var d = new Date(

我想从输入字段(
amount
)和单选按钮(
tType
)中动态获取值,并将它们按
(amount,date,tType)
格式放入数组中。然后我想对数组做两件事: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);
    }
var交易=功能(金额){
这个。金额=金额
this.date=(函数(){
var d=新日期();
var minutes=d.getMinutes();
变量月份=d.getMonth()+1;

if(minutes
getTotal()
使用
movements
数组。但是,不清楚代码中的任何其他函数是如何被调用的,它们实际上将任何内容放入
movements
数组中的。因此,如果这是您的代码,那么
getTotal()
将被调用,而
移动将为空,因此它没有太多工作。@jfriend00“addInitialBalance()”addIn()”和“addOut()”函数将被我的html中的其他按钮调用。getTotal()是否仍然应该被调用函数写入innerHTML语句,总值为0?如果您在某个地方发生错误而使其停止运行,则不会。您是否查看了错误控制台或调试控制台中的脚本错误?此外,您不应使用
for(x in array)
语法对数组进行迭代。这会对对象属性进行迭代(无特定顺序),而不仅仅是数组元素。有时是相同的列表,有时不是。
      <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>