簡體   English   中英

Javascript函數只能運行一次

[英]Javascript function works only once

我有一個函數應該從站點獲取所有輸入,添加它們的值乘以它們的數量,然后用結果替換內部的字符串。 問題是函數只執行一次或有時它從未執行過。 它的代碼是:

function calcTotal() {
    var inputs = document.getElementsByTagName("input");
    var total = 0;

    var priceString = null;
    var e = null;
    var price = null;

    for (var i = 0; i < inputs.length; i++) {
        e = inputs[i].value;
        priceString = "hidden_" + inputs[i].name;
        if (e.match(/[0-9\.]/)) {
            var price = document.getElementById(priceString).innerHTML;
            total = total + parseFloat(e) * parseFloat(price);
        }

    }
    var totalString = document.getElementById("total");
    var stringToDisplay = total.toFixed(2);
    totalString.innerHTML = stringToDisplay.toString();
}

該函數應替換此范圍: <span id="total">0.00</span>

通過代碼調用每個輸入的更改函數:

<?php foreach($allPremium as $premiumItem){?>
<?php $ceny[$premiumItem->type]=$premiumItem->price;?>
<div class="premium-pack-item">
<?php echo $premiumItem->name;?>
<br />
<?php echo $premiumItem->description;?>
<br />
<?php echo "&euro; ".number_format($premiumItem->price, 2);?>
<br />
<span id="hidden_amount_<?php echo $premiumItem->type;?>" style="display:none"><?php echo $premiumItem->price;?></span>
<input onkeypress="calcTotal()" type="number" size=1 name="amount_<?php echo $premiumItem->type;?>">
</div>
<?php }?>

你能解釋一下我犯了什么錯嗎?

我首先會檢查你是否使用開發人員工具獲得任何javascript錯誤,這可能會揭示真正的原因。

暫無
暫無

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

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