Javascript代码:
function suma(){
var sum1 = document.getElementById("sum1");
var sum2 = document.getElementById("sum2");
var input = document.getElementById("resultado");
resultado = (sum1.value * sum2.value);
input.value= resultado;
}
如何对变量resultado
中的答案执行1%的计算并将答案放入premium
中
我的代码如下:
function percentage(){
var resultado = document.getElementById("resultado").value;
var input = document.getElementById("premium");
var premium = (0.01*resultado.value);
input.value = premium;
}
html代码
<input type="number" class="form-control" required onblur="if(this.value
== ''){this.value='0'}" onKeyUp="suma();" id="sum2" name="Weight"
value="0" />
<input type="text" class="form-control" onblur="if(this.value == '')
{this.value='0'}" onKeyUp="suma();" id="sum1" name="variable"
value="3.25" readonly="readonly" />
<input type="text" class="form-control" name="shipping_subtotal"
id="resultado" value="0" />
<input type="number" class="form-control" id="insurance"
name="insurance" onblur="if(this.value == ''){this.value='0'}"
name="variable" value="0.01" readonly="readonly" >
<input type="number" class="form-control" id="premium" name="premium"
value="0" onKeyUp "percentage();" >
发布于 2018-06-24 02:24:17
代码中有相当多的小错误。不过不用担心,它们在那里很容易被忽视。在开发时要记住的一件事是将您的关注点分开,因为您未来的自己和其他使用您的代码的开发人员将感谢您。在这种情况下,我所说的关注点分离是指逻辑与模板。HTML是模板的归属,而JavaScript是您的逻辑。当你编写像<input onblur="if(this.value == ''){this.value='0'}">
这样的内联JavaScript时,它会使你的JavaScript很难理解和维护。在JavaScript文件中,您可以改为使用document.getElementById('demo').onblur = if(this.value == ''){this.value='0'};
,现在可以在一个位置找到所有逻辑。就我个人而言,我更喜欢事件侦听器,因为与onblur不同的是,你可以为给定的事件分配多个函数,而且覆盖其他地方编写的任何函数的风险更小。
假设var el = document.getElementById('demo');
方法1:
el.onblur = if(this.value == ''){this.value='0'};
// This overwrites the onblur function from the line above
el.onblur = alert('hello');
方法二:
el.addEventListener('blur', function() { if(this.value == ''){this.value='0'} });
// This does not overwrite the function above,
// instead, it just adds another function to the event.
el.addEventListener('blur', function() { alert('hello'); });
抛开这个不谈,我相信你的代码会修复一些你的错误。为了帮助你,我写了一个替代你上面脚本的脚本。不过,我不确定我是否按您期望的方式得到了所有东西,所以请随意调整它,使其成为您自己的。
var sum1 = document.getElementById("sum1");
var sum2 = document.getElementById("sum2");
var resultado = document.getElementById("resultado");
var premium = document.getElementById("premium");
var insurance = document.getElementById("insurance");
function calculateFields() {
var suma = (sum1.value * sum2.value);
resultado.value = suma;
premium.value = (0.01 * suma);
}
var inputs = [sum1, sum2, resultado, premium, insurance];
inputs.forEach(function(el) {
el.addEventListener('blur', function() {
this.value = this.value === '' ? 0 : this.value;
});
el.addEventListener('input', calculateFields);
});
弄乱jsfiddle上的代码。
https://stackoverflow.com/questions/51003516
复制相似问题