我们的应用程序在输入字段上使用selectionStart来确定当用户按下箭头键时是否自动将用户移动到下一个/上一个字段(即,当选择位于文本末尾并且用户按下右箭头时我们移动到下一个字段,否则)
Chrome现在阻止在type ="number"的地方使用selectionStart.它现在抛出异常:
Failed to read the 'selectionStart' property from 'HTMLInputElement': The input element's type ('number') does not support selection.
Run Code Online (Sandbox Code Playgroud)
见如下:
https://codereview.chromium.org/100433008/#ps60001
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#do-not-apply
有没有办法在type ="number"的输入字段中确定插入符的位置?
我在引号中加上"回归错误"这个词,因为这显然有一些不一致的意见.有关详细信息,请访问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"/>
笔记: