Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript getelementbyId并添加到其中_Javascript_Math_Add_Getelementbyid - Fatal编程技术网

Javascript getelementbyId并添加到其中

Javascript getelementbyId并添加到其中,javascript,math,add,getelementbyid,Javascript,Math,Add,Getelementbyid,这可能是一个非常简单的问题,但是javascript对我来说是非常新的,我真的不明白为什么它不起作用 我正在构建一个购物车,当用户选择他们的国家在英国以外时,它将向总运费中添加预定义的运费。默认设置为0 因此,目前我正在整理一个非常简单的函数,这样当盒子发生任何变化时,它会在总数中增加5英镑(我相信我可以解决如何检查英国等) 我的javascript是这样的: function checkPostageCost() { var grandTotal = document.getEleme

这可能是一个非常简单的问题,但是javascript对我来说是非常新的,我真的不明白为什么它不起作用

我正在构建一个购物车,当用户选择他们的国家在英国以外时,它将向总运费中添加预定义的运费。默认设置为0

因此,目前我正在整理一个非常简单的函数,这样当盒子发生任何变化时,它会在总数中增加5英镑(我相信我可以解决如何检查英国等)

我的javascript是这样的:

function checkPostageCost() {
    var grandTotal = document.getElementById("cartGrandTotal").value;
    var shippingTotal = 5;
    var newGrandTotal = grandTotal+shippingTotal;
    document.getElementById('invoiceGrandTotal').innerHTML = newGrandTotal;
}
选择框:

<SELECT name='shippingForm_Country' id='shippingForm_Country' onChange="checkPostageCost();">
<?= $availableCountriesList ?>
</SELECT>

从隐藏的输入框中检索总变量,如下所示:

<input type="hidden" id="cartGrandTotal" name="cartGrandTotal" value="<?= $finalGrandTotal ?>" />

将字符串转换为数字,例如使用
+
作为前缀或使用。为了避免难看的数字,请使用


问题是您将它们作为字符串添加,因此它只是将两个数字一个接一个地连接起来。相反,将它们转换为
浮动
,然后执行添加操作,然后返回到字符串以执行
innerHTML
部分:


var-grandTotal=parseFloat(grandTotal)

永无止境的故事:;)非常感谢。这非常有效。为了格式化价格,我使用了php函数displayAmount($amount)。如何在javascript中实现这一点?document.getElementById('invoiceGrandTotal')。innerHTML=“”;你不能,因为PHP是服务器端,JS是客户端。好的,不用担心,我会找到一个替代方案。谢谢你的帮助
function checkPostageCost() {
    var grandTotal = parseFloat(document.getElementById("cartGrandTotal").value);
    var shippingTotal = 5;
    var newGrandTotal = grandTotal + shippingTotal;
    document.getElementById('invoiceGrandTotal').innerHTML = newGrandTotal.toFixed(2);
}