我正在尝试创建一个表,在结果站点中返回一个值,但现在什么都没有出现。我非常感谢你的帮助。
<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);
})();
当我运行并输入值时,结果列中没有任何反应。
答案 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;