不返回结果 - JavaScript

时间:2018-05-21 13:39:42

标签: javascript

我正在尝试创建一个表,在结果站点中返回一个值,但现在什么都没有出现。我非常感谢你的帮助。

<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"/>
    </div>
</th>

<script>

(function calculaResultado(x){

console.log(x);
a = document.getElementById('avInicial' + x).value;
b = document.getElementById('meta' + x).value;
c = document.getElementById('avFinal' + x).value;

const resultado = ((c*100)/b);

  if(b === c){
    return 1; //100%
  } else if (a > c) {
    return 0; // 0%
  } else {
    return resultado;
  }

document.getElementById('resultado' + x).value =  parseInt(resultado); 
})();

当我运行并输入值时,结果列中没有任何反应。

1 个答案:

答案 0 :(得分:0)

您的javascript函数calculaResultado中似乎存在逻辑错误。

您好像正在检查并返回一个值,而您的代码永远不会到达以下行:

    document.getElementById('resultado' + x).value =  parseInt(resultado); 

违规代码是这个块:

    if(b === c){
        return 1; //100%
    } else if (a > c) {
        return 0; // 0%
    } else {
        return resultado;
    }

我建议将块更改为以下内容:

    let resultado = ((c*100)/b);

    if(b === c){
        resultado =  1; //100%
    } else if (a > c) {
        resultado = 0; // 0%
    } else {
        resultado = parseInt(resultado);
    }

    document.getElementById('resultado' + x).value = resultado;