【发布时间】:2013-05-17 09:01:47
【问题描述】:
<input id='nb' name="nb" type="number" placeholder="Number"/>
jQuery.val() 如果只有数字则返回值,如果有字母则为空。
Chrome 会显示输入数字箭头(并且它们有效),但我也可以输入字母......奇怪的事情
顺便说一句,在 mozilla 和 IE8 上它变成了一个正常的输入文本(我猜我有一个旧的 mozilla)
有什么想法吗?在 jQuery doc 上找不到任何特定于带有 .val() 的数字输入的内容
【问题讨论】:
-
出于好奇,
this.value提供了什么(代替$(this).val())? -
最简单的方法是忽略 HTML5,使用
<input type="text"...并设置.onkeyup函数只接受数字(例如正则表达式),因为 HTML5 不是真的得到了所有人的支持。 -
将类型更改为文本,无论您输入什么,您都会得到数字和字母
-
相似,但不重复。在这里,OP 使用的是 HTML5。如果他按照我在之前评论中的建议工作并且他的真正问题是从输入中获取价值,则会重复。
-
如果 Chrome 也允许输入随机字母,我认为这是一个错误 - w3.org/TR/html5/forms.html#number-state-(type=number) 说,“用户代理不得允许用户将值设置为非空不是有效浮点数的字符串。”
标签: javascript jquery html input