2015-10-14 116 views
6

我想用一個<input>元素輸入最多帶8個小數點的數字。但是,如果我有一個<input type="number" step="0.00000001">和使用輸入元件上的上/下箭頭(Chrome上;這裏的jsfiddle),然後我得到科學記數法爲小數字:有沒有辦法爲<input type =「number」>禁止科學記數法?

enter image description here

如果我輸入,說,5,然後打箭頭鍵,然後科學記數法被抑制:

enter image description here

有沒有什麼辦法讓顯示1e-8作爲0.000000001瀏覽器?

另外,在這裏有任何危險,有足夠小的數字,我會遇到浮點舍入錯誤?

<input type="number" step="0.00000001">

回答

4

<input oninput='precise(this)' type="number" step="0.00000001"> 
 

 
<script> 
 
    function precise(elem) { 
 
    elem.value = Number(elem.value).toFixed(8); 
 
    } 
 
</script>

可以根據需要將toFixed參數更改爲十進制數字的期望數量。我希望這有幫助!

+0

可以用'oninput =精確(這)',然後做'函數精確致發光(EL){el.value傳遞特定'input'元件= Number(el.value).toFixed(8); }' – AndyPerlitch

+0

@AndyPerlitch非常好的一點,我已經修復了答案。 – StardustGogeta

2

這裏是基於StardustGogeta的answer的變化:

<input oninput="this.value=Number(this.value).toFixed(this.step.split('.')[1].length)" type=number step="0.00000001"> 
相關問題