javascript语法错误(限制为2位小数)

javascript语法错误(限制为2位小数),javascript,jquery,Javascript,Jquery,我做了这个: document.getElementsByName("price")[0].value.replace(".", ",").toFixed(2) 我想把一个值限制在小数点后两位 但是使用.toFixed(2)我的脚本无法工作,我做错了什么 完整代码: <script> var jq111 = jQuery.noConflict(); jq111(function(){ jq111('#_regular_price').on('input', f

我做了这个:

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));
    }
  })
});

字符串没有固定的
toFixed
方法;数字确实如此。输入的
是一个字符串,在对其调用
replace
时依赖该字符串

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

var element = document.getElementsByName("price")[0];
element.value = parseFloat(element.value).toFixed(2);
我不知道你想用
替换
做什么,所以我忽略了这一点。您的完整代码更有意义。在原始版本中,您将
替换为
。但是您的完整代码将
替换为
,这很有意义,因此:

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('.', ',');

如果你详细阐述一下“打破我的剧本”,那会有帮助的。你已经给出了有效的语法,所以还有其他事情要做。现在我粘贴了我的完整代码。我可能会在我的帖子上添加一个名为“new”的新版本。输入说:[object HTMLInputElement]@eugeniosgala:那么您在某处缺少了
.value
。编辑:是的,在最后。记住,
element
是元素,
element.value
是它的
value
属性。
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('.', ',');