2017-06-02 46 views
0

我有一個範圍滑塊和標籤,該標籤獲取滑塊的值由18.86後者從滑塊值格式標籤文本 - JS

腳本工作得很好劃分,但我需要知道如何格式化標籤如果可能的話,以貨幣格式呈現結果。

<input id="fundvalueslider" max="1000000" min="0" step="1000" type="range" value="0" /> 
 
<br/> 
 
<br/> 
 
<label id="lumpsumamount">0</label> 
 
<p>I want it to show $1,000,000.00</p> 
 
<script> 
 
fundvalueslider.oninput = function() 
 
{lumpsumamount.innerText = fundvalueslider.value /18.86;} 
 
</script>

回答

1

使用的格式功能:

(。這個功能是我寫的,而不是從任何地方複製它的工作原理與不小數點運用自如)

2017年6月5日修訂: 代碼片段修改以支持IE。對於IE兼容性,有兩點需要注意:

  1. IE < = 11不支持Number.isFinite。
  2. IE < = 11,input type=range觸發onchange不oninput(爲Chrome,火狐,邊緣)

function formatNumber(value, precision) { 
 
    var regex = /(\d)(?=(\d{3})+(?:(\.)\d+)?$)/g; 
 
    return (+value).toFixed(precision || 0).replace(regex, function(a, b, c, d) { 
 
      return d ? b+',' : b; 
 
    }); 
 
} 
 

 
fundvalueslider.onchange = 
 
fundvalueslider.oninput = 
 
function() { 
 
    lumpsumamount.innerText = '$'+formatNumber(fundvalueslider.value /18.86, 2); 
 
}
<input id="fundvalueslider" max="50000000" min="0" step="1000" type="range" value="0" /> 
 
<br/> 
 
<br/> 
 
<label id="lumpsumamount">0</label> 
 
<p>I want it to show $1,000,000.00</p>

+0

看起來很有希望,但我只需要2位小數和前綴$。 – Robinlolo

+0

@Robinlolo您的問題需要編輯=) – Val

+0

我在我的問題提到它。你剛纔救了我的命,非常感謝 – Robinlolo