gpt4 book ai didi

JavaScript 语法错误(限制小数点后 2 位)

转载 作者:行者123 更新时间:2023-12-02 15:18:33 25 4
gpt4 key购买 nike

我做了这个:

document.getElementsByName("price")[0].value.replace(".", ",").toFixed(2)

我正在尝试将值限制为小数点后两位。

但是使用 .toFixed(2) 我的脚本不起作用,我做错了什么?

完整代码:

<script>

var jq111 = jQuery.noConflict();

jq111(function(){

jq111('#_regular_price').on('input', function(){

document.getElementsByName("duel-cost")[0].value = document.getElementsByName("_regular_price")[0].value.replace(",", ".");

if(jq111("#prized").val().length > 1) {
var discount = document.getElementsByName("discount")[0].value;
var cost = document.getElementsByName("duel-cost")[0].value;
document.getElementsByName("_sale_price")[0].value = cost - (cost * (discount / 100));
}
})
});

<script>

function updateInput(){

document.getElementsByName("duel-cost")[0].value = document.getElementsByName("_regular_price")[0].value.replace(",", ".");

var discount = document.getElementsByName("discount")[0].value;

var cost = document.getElementsByName("duel-cost")[0].value;

document.getElementsByName("price")[0].value = cost - (cost * (discount / 100));

document.getElementsByName("_sale_price")[0].value = document.getElementsByName("price")[0].value.replace(".", ",").toFixed(2);

}

</script>

新:

 var element = document.getElementsByName("price")[0];

element.value = parseFloat(element.value.replace(/\./g, '').replace(',', '.')).toFixed(2).replace('.', ',');

document.getElementsByName("_sale_price")[0].value = element;

最佳答案

字符串没有 toFixed 方法;数字确实如此。输入的是一个字符串,这是您在其上调用replace时所依赖的东西。

如果 value 根据 JavaScript 规则包含有效数字,您可以执行以下操作:

var element = document.getElementsByName("price")[0];
element.value = parseFloat(element.value).toFixed(2);

我不知道你想用replace做什么,所以我把它省略了。你的完整代码更有意义。在您的原始版本中,您将 . 替换为 ,。但是您的完整代码将 , 替换为 .,这是有道理的,所以:

var element = document.getElementsByName("price")[0];
element.value = parseFloat(element.value.replace(',', '.')).toFixed(2).replace('.', ',');

请注意我如何将 , 放回去。

您可能还想使用 . 作为千位分隔符。正确地做到这一点有点复杂,但我们可以删除它们:

var element = document.getElementsByName("price")[0];
element.value = parseFloat(element.value.replace(/\./g, '').replace(',', '.')).toFixed(2).replace('.', ',');

关于JavaScript 语法错误(限制小数点后 2 位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34269816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com