3

我正在尝试做一些看起来很简单但我无法让它工作的事情。我仍然是 Java 的新手,但我更感兴趣的是学习而不是花钱请人为我做这件事。因此,任何帮助,指导,将不胜感激。

我有一个产品表格

我有数量设置的选项。(小号、中号、大号、XL)

我只需要底部的主要数量框根据用户在前一个输入的内容更新它的值。

我尝试根据我读过的其他帖子编写一个简单的脚本

$("input.Qty").keyup(function(){
  sumValues();
});

function sumValues() {
    var sum = 0;

    $("input.Qty").each(function(){
        var $this = $(this);
        var amount = parseInt($this.val(), 1);
        sum += amount === "" || isNaN(amount)? 0 : amount;
    });

    $("#qtybox").text(sum);
}

$(function() {

  sumValues();

});

根据我读过的所有内容,使用 keyup 方法似乎是最简单的方法。有什么想法或想法吗?

4

2 回答 2

3
parseInt($this.val(), 1);
                      ^---- You are using the wrong radix

应该是

parseInt($this.val(), 10);

另一个问题可能是您将事件绑定到DOM就绪处理程序之外。因此,在绑定事件时元素可能仍然不可用。试着移到里面DOM ready handler

检查小提琴

$(function () {
    $("input.Qty").keyup(function () {
        sumValues();
    }).keyup();
});

function sumValues() {
    var sum = 0;

    $("input.Qty").each(function () {
        var $this = $(this);
        var amount = parseInt($this.val(), 10);
        sum += amount === "" || isNaN(amount) ? 0 : amount;
    });

    $("#qtybox").text(sum);
}
于 2013-07-19T05:24:42.900 回答
0
function sumValues() {
    var sum = 0;

    $("input.Qty").each(function() {
        sum += parseInt(this.value, 10);
    });

    $("#qtybox").text(sum);
}

$(function() {
    $("input.Qty").on('keyup', sumValues).trigger('keyup');
});
于 2013-07-19T05:26:57.257 回答