在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插件?

numbertypes具有控制哪些数字有效的step值(以及maxmin ),默认值为1 。 该值也用于步进button的实现(即, step增加)。

只需将此值更改为适当的值。 对于金钱来说,可能会有两位小数:

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

(如果它只能是正的,我也设置min=0

如果您希望允许任意数量的小数位数,您可以使用step="any" (尽pipe对于货币,我build议坚持0.01 )。 在Chrome和Firefox中,使用anybutton时,步进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(该数字被认为是“非法”,您将收到空值)。