【问题标题】:jQuery Math - No calculation with empty fieldsjQuery Math - 没有空字段的计算
【发布时间】:2018-11-08 22:28:51
【问题描述】:

我有一个简单的解析来获得一组文本区域的总和。它工作正常,但如果字段中没有放置任何值,那么计算就不会运行。

如何使默认值 0 而内容实际上必须为 0?就像,我不希望字段加载 0 已经在框中等待 - 我只是希望公式不担心空字段。

这是 jQuery:

jQuery(document).ready(function(){

  jQuery(".button1").click(function(){

  var set1 = function() {
  var calc1 = 0;
  $('.calc1').each( function(index,item) {
    calc1 += parseInt(jQuery(item).val());
  });
  $('.result1').html(calc1);
}
set1();

  });

});

如果您想获得更好的想法,可以在此处查看 codepen:https://codepen.io/JTBennett/pen/NENMdP

感谢您对此提供的任何帮助!我知道这可能是一个愚蠢的错误,但我尝试了一些不同的方法,但还没有成功。

【问题讨论】:

标签: javascript jquery


【解决方案1】:

试试parseInt(jQuery(item).val() || 0)。如果第一个值是falsey,|| operator 将返回第二个值。因此,如果该值为空,它将尝试解析 '0' 并成功。

【讨论】:

  • 这是正确的,但为了减少工作量,您可以使用数字 0 而不是字符串。
  • 绝对比我的回答 +1 干净
  • @zfrisch 很好,忘记了 Javascript parseInt 也适用于数值。
  • 非常感谢!我真的需要学习如何正确地做这些东西,我觉得我缺少一个基础,因为我从来没有上过这些东西:|
【解决方案2】:

只需创建一个查找空字段的 if 语句,然后将其替换为 0。

  $('.calc1').each( function(index,item) {
    var itemValue = jQuery(item).val();
    if (itemValue === "") {itemValue = 0;}
    calc1 += parseInt(itemValue);
  });

【讨论】:

    【解决方案3】:

    你可以用这个替换你的行:

    calc1 += parseInt(jQuery(item).val() || 0);
    

    【讨论】:

      猜你喜欢
      • 2015-10-08
      • 1970-01-01
      • 2022-01-13
      • 2018-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-03
      相关资源
      最近更新 更多