2015-12-05 50 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

相关问题