2015-12-05 52 views
1

我有一些HTML輸入元素是數字輸入框。如果我設置了一個步長=「0.1」,那麼類似0.001的輸入就會失效。如果我設置了一個步驟=「0.001」,那麼涉及的點擊太多。輸入類型=數字,允許值不能捨入到步長

此行爲似乎在Firefox 42上執行,但Chrome 46允許使用任何數字。下面是一個例子,http://jsfiddle.net/1Lwe59yq/

<html> 
    <input type="number" id="num" min="0" max="10" step="0.1" /> 
    <script> 
    document.getElementById("num").value = 0.001; 
    </script> 
</html> 

嘗試在Firefox,然後嘗試在Chrome瀏覽器的比較。

如何讓輸入框認爲所有數字都有效,但仍然保留用戶點擊向上或向下箭頭時的步長?

警告,此項目不能使用外部庫。

感謝

編輯:還在這裏沒有很好的解決方案,所以我已經實現與驗證自己的自定義文本框和上/下按鈕

+0

你必須使用「'?這聽起來像是使用普通文本輸入並使用JavaScript來驗證和格式化值並添加自定義+/-按鈕更有意義。 – RoToRa

+0

我喜歡它如何在所有平臺上自動爲您提供移動設備上的數字鍵盤 – Frank26080115

回答

0

我相信你「步」需要有小數的相同數量的該值,但是你可以設置一個佔位符,就像任何其他的輸入
http://jsfiddle.net/1Lwe59yq/1/

<input type="number" id="num" min="0" max="10" step="0.1" placeholder=".001" /> 
+0

(然後通過CSS將其設爲相同的顏色) – RooWM

+0

對不起,但我實際上有JS計算來填充這些值,所以此解決方案將無法工作。如果用戶更改此框,則會計算其他框,如果用戶更改了其他框,則會計算該框。 – Frank26080115

+0

ahh明白了@ Frank26080115 - 如果你像JS一樣在JS中設置你的值,並且將你的步驟設置爲正確的小數位,那麼在第一次換入JS時,你也可以將步長設置爲你想要的時間間隔? – RooWM

相關問題