Javascript格式化数字作为货币

时间:2016-09-22 11:04:28

标签: javascript

我有以下代码。

<select id="cage_options">
   <option>Please select</option>
   <option value="2,63330">option1</option>
   <option value="3,13300">option2</option>
   <option value="4,2000.00">option3</option>
</select>
<input id="cage_labor_estimate" disabled>

<script>
   function format(n) {
       return n.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,");
   }

   document.getElementById("cage_options").addEventListener("change", cageOptionFunction);

   function cageOptionFunction() {

       select=document.getElementById('cage_options').value.split(',');

       cage_option = select[1];

       document.getElementById("cage_labor_estimate").value = format(cage_option);
   }

</script>

我正在尝试以当前格式格式化禁用输入框中的输出,但会收到以下错误:

  

TypeError:n.toFixed不是函数。 (在&#39; n.toFixed(2)&#39;中,   &#39; n.toFixed&#39;未定义)

有人可以帮忙吗?

谢谢,

约翰

1 个答案:

答案 0 :(得分:3)

你有一个字符串,一个字符串没有.toFixed()。所以需要将该字符串转换为数字。

cage_option = Number(select[1]);

cage_option = parseFloat(select[1]);