我有以下代码,我想总结输入中的值并将其显示在“总”输入中,但此代码不起作用。请帮我理解什么是错的
<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>
答案 0 :(得分:2)
您的代码没有任何问题,正如@dfsq所评论的那样,只需要调用它即可。
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;
重要提示:如果要将其绑定到
行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">