Javascript 对HTML输入文本求和无效

Javascript 对HTML输入文本求和无效,javascript,html,Javascript,Html,我需要对四个输入文本值求和,但没有任何结果。以下是我正在尝试的代码: var uno=document.getElementsByName('base')[0]; var dos=document.getElementsByName('bonos')[0]; var tres=document.getElementsByName('salud')[0]; var cuatro=document.getElementsByName('afp')[0]; var cinco=document.ge

我需要对四个输入文本值求和,但没有任何结果。以下是我正在尝试的代码:


var uno=document.getElementsByName('base')[0];
var dos=document.getElementsByName('bonos')[0];
var tres=document.getElementsByName('salud')[0];
var cuatro=document.getElementsByName('afp')[0];
var cinco=document.getElementsByName('bruto')[0];
函数updateInput(){
cinco.value=parseFloat(uno.value)+parseFloat(dos.value)+parseFloat(tres.value)+parseFloat(cuatro.value);
}
cinco.addEventListener(“变更”,更新输入);
cinco.addEventListener(“键控”,更新输入);
输入文本的名称正确,但总和不在分析中。有什么想法吗?
输入
CINCO
必须对uno、dos、tres和cuatro的值求和,但它只显示
0

除了绑定到错误元素的事件之外,我怀疑您的问题与脚本的执行有关。尝试更新到

<script>
window.onload = function(){
    var uno    = document.getElementsByName('base')[0];
    var dos = document.getElementsByName('bonos')[0];
    var tres     = document.getElementsByName('salud')[0];
    var cuatro    = document.getElementsByName('afp')[0];
    var cinco   = document.getElementsByName('bruto')[0];

    function updateInput() {
        cinco.value = parseFloat(uno.value) + parseFloat(dos.value) + parseFloat(tres.value) + parseFloat(cuatro.value);
    }

    // update event listeners here
    uno.addEventListener('change', updateInput);
    uno.addEventListener('keyup', updateInput);

   // ... similarly add listeners for other elements as well.
};
</script>

无论字段是否为空或输入不是数字,这都有效,并在输入4个输入中的任何一个后触发总和

var uno = document.getElementsByName('base')[0];
var dos = document.getElementsByName('bonos')[0];
var tres = document.getElementsByName('salud')[0];
var cuatro = document.getElementsByName('afp')[0];
var cinco = document.getElementsByName('bruto')[0];

function getInputVal(inVal){
    return isNaN(parseFloat(inVal)) ? 0 : parseFloat(inVal);
}

function updateInput() {

    var unoVal = getInputVal(uno.value),
        dosVal = getInputVal(dos.value),
        tresVal = getInputVal(tres.value),
        cuatroVal = getInputVal(cuatro.value);

    cinco.value = unoVal + dosVal + tresVal + cuatroVal;
}

uno.addEventListener('keyup', updateInput);
dos.addEventListener('keyup', updateInput);
tres.addEventListener('keyup', updateInput);
cuatro.addEventListener('keyup', updateInput);

这里有一把小提琴:

什么不起作用?函数是否被调用?控制台中是否有错误?您将脚本标记放在了哪里?对uno、dos tres和cuatro(cinco)中的所有值进行求和的输入仅显示0元素被选中时是否存在于DOM中?通常您会先等待文档加载。请在控制台中跟踪uno、duo、tres等的值。这个答案很好,非常感谢您为我节省了很多时间
var uno = document.getElementsByName('base')[0];
var dos = document.getElementsByName('bonos')[0];
var tres = document.getElementsByName('salud')[0];
var cuatro = document.getElementsByName('afp')[0];
var cinco = document.getElementsByName('bruto')[0];

function getInputVal(inVal){
    return isNaN(parseFloat(inVal)) ? 0 : parseFloat(inVal);
}

function updateInput() {

    var unoVal = getInputVal(uno.value),
        dosVal = getInputVal(dos.value),
        tresVal = getInputVal(tres.value),
        cuatroVal = getInputVal(cuatro.value);

    cinco.value = unoVal + dosVal + tresVal + cuatroVal;
}

uno.addEventListener('keyup', updateInput);
dos.addEventListener('keyup', updateInput);
tres.addEventListener('keyup', updateInput);
cuatro.addEventListener('keyup', updateInput);