输出数量翻倍
output number is doubled
本文关键字:输出 更新时间:2023-09-26
我有这样的代码:
<script type="text/javascript">
function showTotal(form, totalEl)
{
var el, els = form.elements;
var sum = 0;
for (var i=0, num=els.length; i<num; ++i){
el = els[i];
if ('text' == el.type){ //&& /SumB/.test(el.name)
sum += +el.value;
}
form.elements[totalEl].value = sum;
}
}
</script>
如果我使用一个警报,我得到正确的输出,但它填充错误的值到"totalEl"你可以测试这个(固定)这是复选框和文本框的第一个块!
如果你尝试
<script type="text/javascript">
function showTotal(form, totalEl)
{
var el, els = form.elements;
var sum = 0;
for (var i=0, num=els.length; i<num; ++i){
el = els[i];
// Do not include totalEl
if ('text' == el.type && el != form.elements[totalEl]) {
sum += +el.value;
}
}
form.elements[totalEl].value = sum;
}
</script>
如果totalEl
是形式的元素,则form.elements[totalEl].value = sum;
行必须在for
循环之外,否则totalEl
本身的值将包含在最后的计算中,导致双重求和。
它将在"sum"文本元素中添加值,以及它现在的书写方式。使用一个类,或者从相加后的新总数中减去当前总数,或者在循环之前将元素归零。
正如另一个答案所提到的,设置"sum"字段的部分也不应该在循环中。
相关文章:
- 在JavaScript中输出转义字符
- 如何在jQuery中将函数的输出分配给变量
- Javascript,输出结果后页面不断刷新
- Datetime格式为Friendly Time.Moment JS输出错误
- 如何将angularjs中的javascript字符串输出为循环数组
- HTML5FileReader输出到D3.js图表
- console.log以外的Javascript输出函数
- Eloquent JavaScript递归示例如何终止为返回1,但仍然输出指数值
- PHP中的数组输出
- 以不同的顺序输出数据
- 使用Rivets.js输出类
- 在Chrome扩展内部输出Google API调用
- 如何为d3.js图表输出组织/嵌套数据
- 将IndexedDB中的数据拉入数组,并通过ReactJS输出
- 一个ajax循环有两个输出错误innerHTML
- 快速排序程序未正确输出
- 函数将输出nan而不是数字,为什么
- 在量角器中创建一个.txt错误输出文件是手动的,而不是控制台错误
- 如何在页面一侧的浮动框中显示用户脚本的输出
- 设置单击编辑输出的样式