相关疑难解决方法(0)

selectionStart/selectionEnd输入类型="数字"不再允许在Chrome中使用

我们的应用程序在输入字段上使用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"的输入字段中确定插入符的位置?

javascript google-chrome

73
推荐指数
6
解决办法
4万
查看次数

如何使用<input type ="number"/>字段克服WhatWG/W3C/Chrome版本33.0.1750.146"回归错误"

我在引号中加上"回归错误"这个词,因为这显然有一些不一致的意见.有关详细信息,请访问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"/>.

属性:

  • selectionStart
  • 选定结束

方法:

  • 选择()
  • setSelectionRange(开始,结束)

(还有其他但这些是常用的关键)

如果您检查HTMLInputElement尝试调用方法的"数字"实例或请求属性将引发异常,则定义方法.:-(

恕我直言这是一个错误(因为功能已被删除,没有任何收获......并且有1,000个网站/应用程序通过JavaScript为这些数字输入字段提供扩展行为......但我离题了(对于那些希望要解决它请使用上面列出的bug帖子))

TL; DR

出于可用性目的,我当然希望并计划继续使用<input type="number"/>字段,因为它们向用户代理提供"提示",如果在移动设备(智能手机/平板电脑/?)上,我希望在字段为时显示数字键盘专注于默认的alpha键盘.

但是对于当前版本的Chrome(版本33.0.1750.146)和盲目实现此规范更改的任何其他浏览器,我想安全地将渲染字段转换回 <input type="text"/>

笔记:

  • 在修改其内容时尝试动态更改这些字段已证明是不成功的,因为字段在更改type属性时会丢失其选择范围.
  • 我确实有一个我想出的解决方案,我很快就会发布,但我想确保这个问题/答案适用于遇到此问题的所有开发人员

javascript w3c google-chrome html-input soft-keyboard

11
推荐指数
1
解决办法
3618
查看次数