为了账号安全,请及时绑定邮箱和手机立即绑定

函数在 JavaScript 中无法正确执行

函数在 JavaScript 中无法正确执行

PHP
12345678_0001 2021-06-29 15:05:58
我在 JavaScript 中有这个函数,它应该计算在 php 中选择的产品的总价。当我加载我的页面时,控制台会在我的函数之外记录日志,但里面的却没有。我的代码中是否有错误导致它无法执行?<?phpif ($result->num_rows > 0) {    // output data of each row    while($row = $result->fetch_assoc()) {      ?>      <tr>          <td><?= htmlentities($row['id']); ?></td>          <td><?= htmlentities($row['Article']); ?></td>          <td><?= htmlentities($row['Prix']); ?></td>          <td><?= htmlentities($row['PrixRetour']); ?></td>          <td><?= htmlentities($row['QuantiteeMaximale']); ?></td>          <td><?= htmlentities($row['Projet']); ?></td>          <td><input data-price='<?= floatval($row['Prix']); ?>' data-max-quantity='<?= intval($row['QuantiteeMaximale']); ?>' type="number" name="quantity"></td>      </tr>      <?php    }    ?>    </table>    <p>Grand Total: $<span id='grandTotal'></span></p>    <script>        console.log("test1");        function calTotal() {            console.log("test2");            const tableEl = document.getElementById('articles')            const grandTotalEl = document.getElementById('grandTotal')            const inputEls = tableEl.querySelectorAll('input[name=quantity]')            const updateGrandTotal = (grandTotalEl, inputEls) => {                grandTotalEl.innerText = inputEls.reduce((total, inputEl) => {                    const maxQuantity = parseInt(inputEl.dataset.maxQuantity)                    if(parseInt(inputEl.value) > maxQuantity) inputEl.value = maxQuantity                    if(parseInt(inputEl.value) < 0) inputEl.value = 0                    const price = parseFloat(inputEl.dataset.price)                    const quantity = parseInt(inputEl.value)                    console.log("hello");                    if(isNaN(quantity)) return total                    return total + (price * quantity)                }, 0)            }
查看完整描述

2 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

// Create javascript-only function for loaded DOM

function readyFired(callback) {

    document.readyState != 'complete' ? setTimeout('readyFired(' + callback + ')', 1) : callback();

}


// DOM is fully-loaded and ready to calculate the total

readyFired(function() {

    calTotal();

});


查看完整回答
反对 回复 2021-07-02
  • 2 回答
  • 0 关注
  • 215 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信