我在引号中加上"回归错误"这个词,因为这显然有一些不一致的意见.有关详细信息,请访问Bugzilla中的Bug 24796.
简而言之,Google Chrome根据最新版本的WhatWG规范实施了更改:http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type- attr-summary从字段
中删除了以下属性和方法<input type="number"/>.
属性:
方法:
(还有其他但这些是常用的关键)
如果您检查HTMLInputElement尝试调用方法的"数字"实例或请求属性将引发异常,则定义方法.:-(
恕我直言这是一个错误(因为功能已被删除,没有任何收获......并且有1,000个网站/应用程序通过JavaScript为这些数字输入字段提供扩展行为......但我离题了(对于那些希望要解决它请使用上面列出的bug帖子))
TL; DR
出于可用性目的,我当然希望并计划继续使用<input type="number"/>字段,因为它们向用户代理提供"提示",如果在移动设备(智能手机/平板电脑/?)上,我希望在字段为时显示数字键盘专注于默认的alpha键盘.
但是对于当前版本的Chrome(版本33.0.1750.146)和盲目实现此规范更改的任何其他浏览器,我想安全地将渲染字段转换回
<input type="text"/>
笔记:
如何阻止(使用Angular)用户输入一个简单数字中的4个以上的数字,如下所示:
<input type="number">
Run Code Online (Sandbox Code Playgroud)
我使用ng-maxlength和max属性,但w3.org规范和官方网站Angular指定的那些属性不会阻止用户添加更多数字.
我想要的是输入停止在4位数,就像以某种方式添加一个掩码或东西.