将 getElementbyid("Upfront_fee").value 的格式设置为十进制(10500.00)监控值

Set format of getElementbyid("Upfront_fee").value to a decimal(10500.00) monitory value

我正在尝试将 Upfront_fee 和 Additional_fee 的输入类型文本的值显示为带 2 位小数的 Monitory 值。 to.Fixed 或 parseFloat 在这里似乎都不起作用。

    <html>
    <head>
    <script type="text/javascript">
       function check() {
       parseFloat(document.getElementById("Upfront_fee").value = 10500);
       parseFloat(document.getElementById("Additional_fee").value = (document.getElementById("Practice_Qty").value-1)*1266);
       }
       function setDecimal() {
        this.value = parseFloat(this.value).toFixed(2);
       }
    </script>
    </head>

    <body>
    <table>
    <th colspan="4">Quotation Values</th>
    <tr><td><label>Practice Numbers:</label></td><td colspan="3"><input type="number" name="Practice_Qty" id="Practice_Qty"  min="1" onChange="check();"></td></tr>
    <tr><td><label>Service Providers:</label></td><td colspan="3"><input type="number" name="Providers_Qty" id="Providers_Qty"  min="1" onChange="check();"></td></tr>
    </table>
    <hr></hr>
    <table>
    <tr><th colspan="2">Upfront Pricing</th></tr>
    <tr><td><label>Upfront fee</label></td><td><input type="Number" name="Upfront_fee" id="Upfront_fee" min="0.00" max="99999.99"></td></tr>
    <tr><td><label>Additional Directory upfront fee</label></td><td><input type="text" name="Additional_fee" id="Additional_fee"></td></tr>
    </table>
    </body>
    </html>

您只是在 check 函数中分配值 10500。相反,您应该在解析后分配该值,然后像这样将其固定为 2 decimal places

function check(){
  document.getElementById('box').value = parseFloat(document.getElementById('box').value).toFixed(2)
}
<input id="box" type="number" name="Practice_Qty" id="Practice_Qty"  min="1" onChange="check();">

注意:运行 代码段,更改文本框中的值并查看结果

就像您在 setDecimal 函数中所做的一样,但您使用的 this 我猜没有指向您的 DOM 元素。像这样使用

document.getElementById('your input id').value = parseFloat('your value').toFixed(2)