首页 > 解决方案 > 计算具有值的输入数

问题描述

js noob 这里 - 我正在尝试计算具有计算值的输入的数量。我想出的尝试实现的代码如下:

var fields = document.querySelectorAll('[id^=example-]'), count = 0;
for (var z = 0; z <= fields.length; z++) {
    if (fields[z].value != "") {
        count = count + 1;
    }
    console.log('count is: ' + count);
}

上下文:总共有 3 个输入,上面的代码在点击事件上执行。

现在第一次,这显然运行良好,例如,如果我设置三个输入中的第一个输入的值并返回 [1]。我第二次更新相同字段的值时,计数器再次增加(逻辑上)。

现在,我想要实现的是在事件触发时检查所有三个输入并计算其中有多少具有值(如果它们已经被计为在先前的触发事件中具有值,则不要进一步增加计数器)。

任何帮助将不胜感激。谢谢!

标签: javascriptfor-loopif-statement

解决方案


更短

const count = [...document.querySelectorAll('[id^=example-]')]
  .filter(fld => fld.value.trim() !== "")
  .length

推荐阅读