inputtypes=数字键盘在Galaxy Tab中已禁用点

我知道这个问题已经有很多问题了,但是没有一个解决scheme对我有用。

我正在为使用三星Galaxy Tab的企业开发一个网站。 有很多内容是十进制数的input。 所以我试着用<input type="number" /> 。 但导航器显示禁用点和逗号的键盘。 不仅如此,而且onfocus,点或逗号分隔符将从值中删除。

我已经尝试设置一个像“0,1”,“0,01”,“0.1”,“0.01”,“任何”等步骤,试图与正则expression式十进制,最大,与十进制数字匹配…在stackoverflow中没有任何build议可以尝试,这是可怕的哈哈。

我正在使用默认浏览器的三星Galaxy Tab 10.1,但我还没有发现任何文件谈论它的HTML5实施的任何限制。 所以现在我不知道是否有什么东西我想念,如果有什么我可以尝试,或者如果有什么事情知道是银河标签的错,所以我什么也不能做。

非常感谢提前。

Solutions Collecting From Web of "inputtypes=数字键盘在Galaxy Tab中已禁用点"

在android命名空间中,您可以使用:

  android:inputType="numberDecimal" 

这使您可以input“。”

你需要扩展你的webview类,并像这样使用它的对象

 public class WebViewExtended extends WebView{ public WebViewExtended(Context context) { super(context); } public WebViewExtended(Context context, AttributeSet attrs) { super(context, attrs); } public WebViewExtended(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public InputConnection onCreateInputConnection(EditorInfo outAttrs) { InputConnection connection = super.onCreateInputConnection(outAttrs); if ((outAttrs.inputType & InputType.TYPE_CLASS_NUMBER) == InputType.TYPE_CLASS_NUMBER) { outAttrs.inputType |= InputType.TYPE_NUMBER_FLAG_DECIMAL; } return connection; } } 

使用数字typesinput的HTML5规范规定,任何可以parsing为有效浮点数的string都应该被允许。 具体包括. 以及-+e

所以三星Galaxy Tab 10.1上的实现是无效的。

如果您需要支持此设备,则可能必须使用type="text"并validationstring。 这不会在具有软件键盘的设备上自动popup正确的键盘。

 <input type="text" pattern="^-?(?:[0-9]+|[0-9]*\.[0-9]+)$" name="NumberInput">