总结表格列中的值

时间:2017-04-11 17:27:44

标签: javascript

我有以下代码,我想总结输入中的值并将其显示在“总”输入中,但此代码不起作用。请帮我理解什么是错的

<table>
<tr>
<td><input name="comm" id="comm" type="number" value="10" disabled"></td>
</tr>
<tr>
<td><input name="comm" id="comm" type="number" value="5" disabled"></td>
</tr>
<tr>
<td><input name="comm" id="comm" type="number" value="4" disabled"></td>
</tr>
<tr>
<td><input name="comm" id="comm" type="number" value="10" disabled"></td>
</tr>
</table>

<input name="tot" id="tot" type="number" value="" disabled">


<script>
window.sumInputs = function() {
    var inputs = document.getElementsByTagName('input'),
        result = document.getElementById('tot'),
        sum = 0;            

    for(var i=0; i<inputs.length; i++) {
        var ip = inputs[i];

        if (ip.name && ip.name.indexOf("total") < 0) {
            sum += parseInt(ip.value) || 0;
        }

    }

    result.value = sum;
}
    </script>

1 个答案:

答案 0 :(得分:2)

您的代码没有任何问题,正如@dfsq所评论的那样,只需要调用它即可。

&#13;
&#13;
window.sumInputs = function() {
    var inputs = document.getElementsByTagName('input'),
        result = document.getElementById('tot'),
        sum = 0;            

    for(var i=0; i<inputs.length; i++) {
        var ip = inputs[i];

        if (ip.name && ip.name.indexOf("total") < 0) {
            sum += parseInt(ip.value) || 0;
        }

    }

    result.value = sum;
}
sumInputs();
&#13;
<table>
<tr>
<td><input name="comm" id="comm" type="number" value="10" disabled"></td>
</tr>
<tr>
<td><input name="comm" id="comm" type="number" value="5" disabled"></td>
</tr>
<tr>
<td><input name="comm" id="comm" type="number" value="4" disabled"></td>
</tr>
<tr>
<td><input name="comm" id="comm" type="number" value="10" disabled"></td>
</tr>
</table>

<input name="tot" id="tot" type="number" value="" disabled">
&#13;
&#13;
&#13;

  

重要提示:如果要将其绑定到onchange="sumInputs()"功能,则必须修改代码。比如改变

document.getElementsByTagName('input'),

document.querySelectorAll('[name="comm"]');

和所有输入,如

<input name="comm" id="comm" type="number" value="10" disabled">

<input onchange="sumInputs()" name="comm" id="comm" type="number" value="10" disabled">