Javascript在选择菜单上不触发更改100%的时间
Javascript not firing on select menu change 100% of the time
感谢我昨天得到的一些帮助,我根据用户输入和从选择菜单中选择的选择对 HTML 表进行了一些动态求和。我遇到了一个问题,尽管这让我感到困惑。如果你看看我的jsfiddle:
http://jsfiddle.net/fmdataweb/T5xtL/13/
如果按如下方式输入数据:第 1 行:水果 = 苹果数量 = 100Rwo 2:水果=香蕉数量=200
对于总数,一切都按预期工作:
苹果总数 100香蕉总数 200
如果您现在将第 1 行水果选择从苹果更改为班安,则小计现在为:
苹果总数 100香蕉总数 300
香蕉总数已正确更新,但苹果总数没有变化 - 现在应为零/0。
知道这是怎么回事吗?
更新:这是我的意思的jsFiddle,因为之前不清楚
在 calc 函数开始时,您应该将所有内容重置回零。问题是,只有在下拉列表中选择了其中一个水果时,您才会重置为零。 在您的情况下,苹果未被选中,因此永远不会重置!希望这有帮助。
在您的代码中,您只更新与span
匹配的val
,换句话说,您需要先重置值。将一个类添加到您的total
中,其中包含总计。
<span id="sumApples" class="sum"></span>
<span id="sumBanana" class="sum"></span>
...
然后重置:
for(val in total){
if(total.hasOwnProperty(val)){
$('.sum').html(''); // Reset
$('#sum' + val).html(total[val]);
}
}
这是你的错误:
for(val in total){
您只是为 banana
的属性设置 html,因此在更改唯一具有banana
banana
后没有select
,因此total['banana']
的总数不会更新,因为没有设置sum
0!
这是一个修复:
$('.fruit select:first option').each(function() {
val = $(this).text();
if(!total.hasOwnProperty(val))
total[val] = 0;
});
这将从第一个0
中获取所有选项,并检查 total 是否将其每个选项作为属性,添加具有值的缺失属性 select
.
小提琴
如果要检查所有option
的:first
,请从选择器中删除CC_15。
- Java脚本时间添加
- Json数据包含日期和时间格式
- 如何根据时间运行不同的脚本
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 在wordpress一定时间后更改自定义字段
- 更改angularjs中的日期-时间格式
- 将当前时间添加到我的页面上的特定部分
- 门户网站:当地时间有多有用
- 显示时间的脚本
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 通过JSON&比较时间
- Javascript时间轨迹
- 将日期时间作为 JSON 发送将无法在我的视图中正确显示
- 生成随机唯一数据的时间太长,占用了100%的CPU
- Javascript在选择菜单上不触发更改100%的时间
- 为什么运行这个循环9次比运行它8次要花费100倍的时间?
- 在一段时间后(比如100毫秒)自动调用JS函数
- PHP会话问题,不是100%的工作时间
- 即使对于 100 个条目,DataTable 也需要花费大量时间才能显示
- Google Maps V3渲染超过100万个标记(在合理的时间内)