2017-04-20 52 views
0

我試圖將Upfront_fee和Additional_fee的輸入類型文本的值顯示爲帶2位小數的Monitory值。 沒有固定或parseFloat似乎在這裏工作。將getElementbyid(「Upfront_fee」).value的值設置爲小數(10500.00)監視值

<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> 
+0

你是不是叫'setDecimal'任何地方... – CBroe

+0

不要在我的文本框中工作的價值仍然顯示爲10500 –

+0

setDecimal是在一個單獨的應用toFixed(2)或parseFloat企圖除了@ zer00ne建議哪個不起作用之外的其他功能。 –

回答

1

你只是在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)