我知道有很多问题已经回复了,但是没有一个解决方案对我有用。
我正在为使用三星Galaxy Tab的企业开发网站。有很多输入,其内容是十进制数。所以我尝试了<input type="number" />
。但是导航器会显示一个带点和逗号的键盘。不仅如此,还会从值中删除onfocus,点或逗号分隔符。
我已经尝试设置“0,1”,“0,01”,“0.1”,“0.01”,“任意”等步骤,尝试使用匹配十进制数的正则表达式的min,max,pattern ...在stackoverflow中没有任何建议可以尝试,这很糟糕哈哈。
我正在使用带有默认浏览器的三星Galaxy Tab 10.1,但我没有找到任何文件谈论它的html5实现的任何限制。所以现在我不知道是否有我遗漏的东西,如果有什么我可以尝试,或者如果有什么东西知道Galaxy Tab的错,那么我就什么也做不了。
提前多多感谢。
答案 0 :(得分:5)
在android命名空间中,您可以使用:
android:inputType="numberDecimal"
这使您可以输入“。”
答案 1 :(得分:5)
您需要扩展您的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;
}
}
答案 2 :(得分:2)
HTML5 specification for input with a type of number表示应该允许任何可以解析为valid floating point number的字符串。具体包括.
以及-
,+
和e
。
因此,三星Galaxy Tab 10.1上的实施无效。
如果您需要支持此设备,则可能必须使用type="text"
并验证字符串。这不会在具有软件键盘的设备上自动弹出正确的键盘。
<input type="text" pattern="^-?(?:[0-9]+|[0-9]*\.[0-9]+)$" name="NumberInput">