0

我有这个功能:

    $("#inc<?php echo"$key"; ?>").click(function(){

    prod_id = "<?php echo"$key"; ?>";
    $.ajax({
    type: "POST",
    url: "updateproduct2cart.php",
    data: "itemid="+prod_id+"&act=update&qty=up"
    });

    var currentValue = $("#inc<?php echo"$key"; ?>").closest('#SCprodsB').next('#SCprodsF').find('#totalCommande').html();
    currentValue = parseFloat(currentValue);

    $(":text[name='qty<?php echo"$key"; ?>']").val(Number($(":text[name='qty<?php echo"$key"; ?>']").val()) + 1);

    var totalItems = parseFloat($("#qty<?php echo"$key"; ?>").val());
    var priceItem = parseFloat(<?php echo"$priceProduct"; ?>).toFixed(2);
    var totalValueUp = parseFloat(priceItem * totalItems).toFixed(2);
    $("#subtotal<?php echo"$key"; ?>").html("&#128; "+ totalValueUp);

    /* PART BELOW IS NOT WORKING PROPERLY*/

    var numItems = parseFloat($(":text[name='qty<?php echo"$key"; ?>']").val());
    var totalPriceItems = parseFloat(priceItem * numItems).toFixed(2);
    var newValue = parseFloat(currentValue + totalPriceItems).toFixed(2);
    $("#inc<?php echo"$key"; ?>").closest('#SCprodsB').next('#SCprodsF').find('#totalCommande').html(newValue);

    });

这是 HTML 部分:

<table id="SCproduits" summary="commande">
    <caption></caption>
    <thead>
        <tr>
            <th scope="col">--</th>
            <th scope="col">--</th>
            <th scope="col">--</th>
            <th scope="col">--</th>
            <th scope="col">--</th>
            <th scope="col">--</th>
            <th scope="col">--</th>
            <th scope="col">--</th>
        </tr>
    </thead>
    <tbody id="SCprodsB">
        <tr id="prodItemi3" name="prodItemi3">
            <tr id="prodItemi4" name="prodItemi4">
                <th id="prodItemi4" scope="row">xxxxxxxxx</th>
                <td>xxx</td>
                <td>
                    <td>
                        <button id="deci4" class="SCbutton">-</button>
                        <input id="qtyi4" class="SCinput3" type="text" size="2" value="1"
                        name="qtyi4">
                        <button id="inci4" class="SCbutton">+</button>
                    </td>
                    <td>
                        <td>
                            <td>
                                <td>
            </tr>
    </tbody>
    <tfoot id="SCprodsF">
        <tr>
            <th scope="row"></th>
            <td colspan="7">€ <span id="totalCommande">xxx</span>

            </td>
        </tr>
    </tfoot>
</table>

使用 (inci4 按钮) 时,我无法使用正确的总值更新 (span id="totalCommande")。任何的想法 ?我走错路了吗?谢谢

4

1 回答 1

0

你的问题可能在这里:

var totalPriceItems = parseFloat(priceItem * numItems).toFixed(2);
var newValue = parseFloat(currentValue + totalPriceItems).toFixed(2);

通过使用.toFixed,您将数字转换回字符串。然后,当您将currentValue(数字)添加到totalPriceItems(字符串)时,您最终会进行字符串连接而不是加法。

因此,如果currentValue = 1totalPriceItems = "2",您将"12"在回答时得到 (a string) 而不是3.

于 2013-01-07T16:34:40.263 回答