【发布时间】:2023-03-03 11:04:01
【问题描述】:
在编写一些验证代码时偶然发现了 jQuery 中的一些奇怪的东西——我有一个 html5“数字”字段;
<input type="number" class="required numeric" />
然后,我的脚本将查看页面上的每个字段,检查类并根据需要进行验证。我奇怪地注意到,如果我在我的一个数字字段中输入“X”,我会收到“请在此字段中输入一个值”错误,而不是“这应该是一个数字”错误。经过一番摸索和大量调试后,我敲了一个 jsFiddle 来演示我的理论-如果您在数字字段中输入一个字符,然后尝试从 jquery 执行 .val() 它将不会返回任何内容-好像字段为空(我在 Chrome 中遇到了这个——不确定它是否在所有浏览器中都这样工作);
http://jsfiddle.net/shawson/SE46L/3/
这是小提琴-输入一些数字,然后输入几个字母以查看其疯狂程度。任何人都知道这是否是设计使然,如果是这样......为什么?
【问题讨论】:
-
在 Firefox 中工作,必须是特定于 Chrome 的,我猜 Safari 也是因为它呈现相同的“数字”属性。
-
多么烦人 - 是的,刚刚尝试过 IE10,它运行良好!
-
这不是 jQuery 问题 - 元素本身正在为非数字输入返回一个空字符串。
-
IE10 和 FF20 尚不支持
input type=number,因此它们回退到input type=text。 Opera 支持它并显示一个空值。 -
@apsillers 实际上,规范说 type="number" 应该返回一个浮点数(数字输入或其他)
标签: jquery google-chrome