首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JavaScript对结果进行计数

使用JavaScript对结果进行计数
EN

Stack Overflow用户
提问于 2018-05-30 18:32:32
回答 1查看 83关注 0票数 -3

我有以下问题:我有一个供用户使用的表,在每一行的末尾给出一个结果。我想要计算我有多少个结果,只是为了计数,我不想把结果相加。我如何使用Javascript来做这件事?谢谢

我的表编码:

代码语言:javascript
复制
<table id="example" class="striped">
                                <thead>
                                <tr>
                                    <th>Objetivos</th>
                                    <th> <center>Data Inicial </center></th>
                                    <th> <center>Data Final </center></th>
                                    <th>Avaliação Inicial</th>
                                    <th>  <center>Meta </center></th>
                                    <th>Avaliação Intercalar</th>
                                    <th>Avaliação Final</th>
                                    <th>Resultado (%)</th>
                                </tr>
                                </thead>

                                <tbody>
                                 <tr>
                                    <th>Objetivo 1</th>
                                    <th>
                                        <div class="input-field col s12">
                                            <input id="DataInicio" type = "date" class = "datepicker" name = "DataInicio" />
                                            <label for="datainicio"></label>
                                        </div>
                                    </th>
                                    <th>
                                        <div class="input-field col s12">
                                            <input id="DataFim" type = "date" class = "datepicker" name = "DataFim" />
                                            <label for="datafim"></label>
                                        </div>
                                    </th>
                                    <th>
                                        <div class="input-field col s12">
                                            <input id="avInicial1" type="text" class="validate"
                                                autocomplete="off" name="AvInicial"
                                                onchange="calculaResultado(1)">
                                            <label for="avinicial"></label>
                                        </div>
                                    </th>
                                    <th>
                                        <div class="input-field col s12">
                                            <input id="meta1" type="text" class="validate" autocomplete="off"
                                                name="Meta" onchange="calculaResultado(1)">
                                            <label for="meta"></label>
                                        </div>
                                    </th>
                                    <th>
                                        <div class="input-field col s12">
                                            <input id="AvIntercalar" type="text" class="validate"
                                                autocomplete="off" name="AvIntercalar">
                                            <label for="avintercalar"></label>
                                        </div>
                                    </th>
                                    <th>
                                        <div class="input-field col s12">
                                            <input id="avFinal1" type="text" class="validate"
                                                autocomplete="off" name="Avfinal" onchange="calculaResultado(1)">
                                            <label for="avfinal"></label>       
                                        </div>
                                    </th>
                                    <th>
                                        <div class="input-field col s12">
                                            <input disabled id="resultado1" name="ResultadoUni" />
                                            <label for="resultadouni" onchange="calculaMediaFinal()"></label>  
                                        </div>
                                    </th>
                                </tr>
                                <tr>
                                    <th>Objetivo 2</th>
                                    <th>
                                        <div class="input-field col s12">
                                            <input id="DataInicio" type = "date" class = "datepicker" name = "DataInicio" />
                                            <label for="datainicio"></label>
                                        </div>
                                    </th>
                                    <th>
                                        <div class="input-field col s12">
                                           <input id="DataFim" type = "date" class = "datepicker" name = "DataFim" />
                                            <label for="datafim"></label>
                                        </div>
                                    </th>
                                    <th>
                                        <div class="input-field col s12">
                                            <input id="avInicial2" type="text" class="validate"
                                                   autocomplete="off" name="AvInicial"
                                                   onchange="calculaResultado(2)">
                                            <label for="avinicial"></label>
                                        </div>
                                    </th>
                                    <th>
                                        <div class="input-field col s12">
                                            <input id="meta2" type="text" class="validate" autocomplete="off"
                                                   name="Meta" onchange="calculaResultado(2)">
                                            <label for="meta"></label>
                                        </div>
                                    </th>
                                    <th>
                                        <div class="input-field col s12">
                                            <input id="AvIntercalar" type="text" class="validate"
                                                   autocomplete="off" name="AvIntercalar">
                                            <label for="avintercalar"></label>
                                        </div>
                                    </th>
                                    <th>
                                        <div class="input-field col s12">
                                            <input id="avFinal2" type="text" class="validate"
                                                   autocomplete="off" name="Avfinal" onchange="calculaResultado(2)">
                                            <label for="avfinal"></label> 
                                        </div>
                                    </th>
                                    <th>
                                        <div class="input-field col s12">
                                            <input disabled id="resultado2" name="ResultadoUni" />
                                            <label for="resultadouni" onchange="calculaMediaFinal()"></label>  
                                        </div>
                                    </th>
                                </tr>
                             </tbody>
                            </table>

我有这两行,结果是计算值。但是用户可能没有填写这两行,因此我想计算一下显示了多少个结果

enter image description here

EN

回答 1

Stack Overflow用户

发布于 2018-05-30 19:37:13

您的JS代码将帮助解决此问题。我的方法是:

第1步:将id="AvIntercalar“更改为id="AvIntercalar1”和object2

代码语言:javascript
复制
function calculaResultado(id){

  //just do your maths here(I cannot understand your language)

    var initialAverage =document.getElementById('avInicial'+id).value;

    var meta =document.getElementById('meta'+id).value;
    var intercalarAverage =document.getElementById('AvIntercalar'+id).value; 
    var averageFinal =document.getElementById('avFinal'+id).value;

  var resultado=Number(initialAverage)+Number(meta)+Number(averageFinal);
//set the value as required
  document.getElementById("resultado"+id).value=resultado;


}

开始代码段

代码语言:javascript
复制
// grobal value validObjects 
var validObjects = [];

function calculaResultado(id) {

  //just do your maths here(I cannot understand your language)

  var initialAverage = document.getElementById('avInicial' + id).value;

  var meta = document.getElementById('meta' + id).value;
  var intercalarAverage = document.getElementById('AvIntercalar' + id).value;
  var averageFinal = document.getElementById('avFinal' + id).value;

  var resultado = Number(initialAverage) + Number(meta) + Number(averageFinal)+Number(intercalarAverage);
  //set the value as required
  document.getElementById("resultado" + id).value = resultado;

  // this code will run when resultado is valid, else no reaction
  if (resultado && validObjects.indexOf(id) == -1) {

    validObjects.push(id);

    document.getElementById('count').innerText = "Valid Results: " + validObjects.length;

  } else {
    validObjects.splice(validObjects.indexOf(id), 1);
    document.getElementById('count').innerText = "Valid Results: " + validObjects.length;
  }

}
代码语言:javascript
复制
<h2 id="count"></h2>
<table id="example" class="striped">
  <thead>
    <tr>
      <th>Objetivos</th>
      <th>
        <center>Data Inicial </center>
      </th>
      <th>
        <center>Data Final </center>
      </th>
      <th>Avaliação Inicial</th>
      <th>
        <center>Meta </center>
      </th>
      <th>Avaliação Intercalar</th>
      <th>Avaliação Final</th>
      <th>Resultado (%)</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <th>Objetivo 1</th>
      <th>
        <div class="input-field col s12">
          <input id="DataInicio" type="date" class="datepicker" name="DataInicio" />
          <label for="datainicio"></label>
        </div>
      </th>
      <th>
        <div class="input-field col s12">
          <input id="DataFim" type="date" class="datepicker" name="DataFim" />
          <label for="datafim"></label>
        </div>
      </th>
      <th>
        <div class="input-field col s12">
          <input id="avInicial1" type="text" class="validate" autocomplete="off" name="AvInicial" onchange="calculaResultado(1)">
          <label for="avinicial"></label>
        </div>
      </th>
      <th>
        <div class="input-field col s12">
          <input id="meta1" type="text" class="validate" autocomplete="off" name="Meta" onchange="calculaResultado(1)">
          <label for="meta"></label>
        </div>
      </th>
      <th>
        <div class="input-field col s12">
          <input id="AvIntercalar1" type="text" class="validate" autocomplete="off" name="AvIntercalar">
          <label for="avintercalar"></label>
        </div>
      </th>
      <th>
        <div class="input-field col s12">
          <input id="avFinal1" type="text" class="validate" autocomplete="off" name="Avfinal" onchange="calculaResultado(1)">
          <label for="avfinal"></label>
        </div>
      </th>
      <th>
        <div class="input-field col s12">
          <input disabled id="resultado1" name="ResultadoUni" />
          <label for="resultadouni" onchange="calculaMediaFinal()"></label>
        </div>
      </th>
    </tr>
    <tr>
      <th>Objetivo 2</th>
      <th>
        <div class="input-field col s12">
          <input id="DataInicio" type="date" class="datepicker" name="DataInicio" />
          <label for="datainicio"></label>
        </div>
      </th>
      <th>
        <div class="input-field col s12">
          <input id="DataFim" type="date" class="datepicker" name="DataFim" />
          <label for="datafim"></label>
        </div>
      </th>
      <th>
        <div class="input-field col s12">
          <input id="avInicial2" type="text" class="validate" autocomplete="off" name="AvInicial" onchange="calculaResultado(2)">
          <label for="avinicial"></label>
        </div>
      </th>
      <th>
        <div class="input-field col s12">
          <input id="meta2" type="text" class="validate" autocomplete="off" name="Meta" onchange="calculaResultado(2)">
          <label for="meta"></label>
        </div>
      </th>
      <th>
        <div class="input-field col s12">
          <input id="AvIntercalar2" type="text" class="validate" autocomplete="off" name="AvIntercalar">
          <label for="avintercalar"></label>
        </div>
      </th>
      <th>
        <div class="input-field col s12">
          <input id="avFinal2" type="text" class="validate" autocomplete="off" name="Avfinal" onchange="calculaResultado(2)">
          <label for="avfinal"></label>
        </div>
      </th>
      <th>
        <div class="input-field col s12">
          <input disabled id="resultado2" name="ResultadoUni" />
          <label for="resultadouni" onchange="calculaMediaFinal()"></label>
        </div>
      </th>
    </tr>
  </tbody>
</table>

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50602443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档