在HTML(5)中是否有浮点inputtypes?
根据http://simon.html5.org/html-elements ,“数字”inputtypes的“值属性,如果指定,而不是空的,必须有一个有效的浮点数的值。
然而,简单地说(在Chrome.latest中,无论如何),使用整数而不是浮点数的“updown”控件:
body { background-color: lightyellow; } header { font-family:'Segoe UI', 'Segoe Light', 'Courier New', sans-serif; //font-weight: bold; padding-left: 15px; background-color: Blue; color: White; } label { font-family: Consolas, 'Segoe UI', sans-serif; margin-left: 10px; min-width: 120px; } input { float:right; } .clearBoth { clear:both; }
<header>New Delivery - @SerialNumber</header> </br> <label>Invoice #</label> <input type="text" id="invoiceNumber"></input> <div class="clearBoth"></div> <label>Date</label> <input type="date" id="date"></input> <div class="clearBoth"></div> <label>Total Amt $</label> <input type="number" id="totalAmt"></input>
有没有一个浮点input元素原生的HTML5,或使数字inputtypes的工作与浮动,而不是整数? 或者我必须诉诸于jQuery UI插件?
number
types具有控制哪些数字有效的step
值(以及max
和min
),默认值为1
。 该值也用于步进button的实现(即, step
增加)。
只需将此值更改为适当的值。 对于金钱来说,可能会有两位小数:
<input type="number" step="0.01">
(如果它只能是正的,我也设置min=0
)
如果您希望允许任意数量的小数位数,您可以使用step="any"
(尽pipe对于货币,我build议坚持0.01
)。 在Chrome和Firefox中,使用any
button时,步进button将递增/递减1。 (感谢Michal Stefanow的指出any
的答案,并在这里看到相关的规格 )
这是一个操场,展示了各种步骤如何影响各种inputtypes:
<form> <input type=number step=1 /> Step 1 (default)<br /> <input type=number step=0.01 /> Step 0.01<br /> <input type=number step=any /> Step any<br /> <input type=range step=20 /> Step 20<br /> <input type=datetime-local step=60 /> Step 60 (default)<br /> <input type=datetime-local step=1 /> Step 1<br /> <input type=datetime-local step=any /> Step any<br /> <input type=datetime-local step=0.001 /> Step 0.001<br /> <input type=datetime-local step=3600 /> Step 3600 (1 hour)<br /> <input type=datetime-local step=86400 /> Step 86400 (1 day)<br /> <input type=datetime-local step=70 /> Step 70 (1 min, 10 sec)<br /> </form>
Via: http : //blog.isotoma.com/2012/03/html5-input-typenumber-and-decimalsfloats-in-chrome/
但是,如果你想要所有的数字是有效的,整数和小数点呢? 在这种情况下,将步骤设置为“任何”
<input type="number" step="any" />
Chrome适用于我,未在其他浏览器中testing过。
根据这个答案
<input type="text" id="sno" placeholder="Only float with dot !" onkeypress="return (event.charCode >= 48 && event.charCode <= 57) || event.charCode == 46 || event.charCode == 0 ">
含义:
字符码:
- 48-57等于
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
- 0是
Backspace
(否则需要在Firefox上刷新页面) - 46是
dot
&&
是AND
, ||
是OR
运算符。
如果你尝试使用逗号浮动:
<input type="text" id="sno" placeholder="Only float with comma !" onkeypress="return (event.charCode >= 48 && event.charCode <= 57) || event.charCode == 44 || event.charCode == 0 ">
支持Chromium和Firefox(Linux X64) (其他浏览器我不存在。)
您可以使用:
<input type="number" step="any" min="0" max="100" value="22.33">
希望帮助,问候
我这样做
<input id="relacionac" name="relacionac" type="number" min="0.4" max="0.7" placeholder="0,40-0,70" class="form-control input-md" step="0.01">
那么,我将0.4定义为min,0.7中的最大值为0.01:0.4,0.41,0.42 … 0.7
我也遇到了同样的问题,因为法文的本地化 ,我只能用逗号而不是句号 / 句号来解决问题。
所以它适用于:
2是好的
2,5是好的
2.5是KO(该数字被认为是“非法”,您将收到空值)。