簡體   English   中英

jQuery / Javascript 和按預期計算

[英]jQuery / Javascript sum calculating as expected

我正在計算更改時的數字輸入總數,這是我的輸入:

<input type="number" class="qty mnm-quantity" step="3" min="0" max="9" name="mnm_quantity[197]" value="" title="Qty" size="4" placeholder="0" inputmode="numeric">
<input type="number" class="qty mnm-quantity" step="3" min="0" max="9" name="mnm_quantity[198]" value="" title="Qty" size="4" placeholder="0" inputmode="numeric">
<input type="number" class="qty mnm-quantity" step="3" min="0" max="9" name="mnm_quantity[199]" value="" title="Qty" size="4" placeholder="0" inputmode="numeric">

然后我有以下腳本做總和:

var totalitems = 0;

$( ".mnm-quantity" ).each(function() {
        
    $(this).on('change', function() {
            
        totalitems += parseInt($(this).val());
            
        var quantity = $('.wc-pao-addon-select').find(":selected").data('label');
            
        if(totalitems >= quantity){
            $('.mnm-quantity').prop('readonly', true);
        }

        console.log(totalitems);
            
    });   
}); 

當我增加每個字段的數量時,總和計算正確。 在上面的 console.log 中,我得到 3、6 和 9。

但是,如果我只增加一個字段的數量,console.log 輸出 3,然后輸出 9,然后只讀 function 啟動。看起來它添加 3,然后下一步(3)是 6 ,使 9。

這可以通過增加 3 個單獨字段的方式解決嗎?

您需要一個更改事件偵聽器,並且在每次更改時,您都需要重新計算值

$(".mnm-quantity").on('change', function() {
var totalitems = 0;
$(".mnm-quantity").each(function(i,e) {
        totalitems += $.isNumeric(e.value) ? parseInt(e.value) : 0;
}); 
console.log(totalitems);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM