三星 Galaxy 平板电脑不允许在“数字”类型的输入中输入浮点数
Posted
技术标签:
【中文标题】三星 Galaxy 平板电脑不允许在“数字”类型的输入中输入浮点数【英文标题】:Samsung Galaxy Tablet does not allow entering floating point numbers to inputs with "number" type 【发布时间】:2012-06-23 11:53:33 【问题描述】:我们的客户希望我们为输入字段显示数字键盘,所以基本上我创建了一个如下字段:
<input type="number" name="quantity" step=".01" value="0.00" />
但是,Galaxy Tablet 会删除“.”。并在其前后合并数字,也禁用“。”在键盘中。
在使用 type="text" 时,是否有其他方法可以解决此问题或在输入字段中显示数字键盘?
注意: 我尝试使用 pattern 属性(适用于 iPhone)。 我在使用 android 2.1+ 的各种 Android 设备上测试了这个问题。我在任何其他 HTC 和三星设备上都没有遇到此错误。
【问题讨论】:
您的平板电脑是否设置为欧洲数字格式? -decimal point
和 comma
在欧洲数字格式中反向使用
很遗憾,没有,我正在美国键盘上进行测试,也在澳大利亚进行客户端测试。
哪个 Galaxy-tab 和哪个版本的 android?
@PrashantGupta 我在 Android 3.2 上的 Galaxy Tab GT-P7510(10 英寸)上遇到问题
@Yash 这与 Android SDK 或 Android 布局无关。这是关于 Android 浏览器或 WebView 中的 html5 输入类型。
【参考方案1】:
是的,还有另一种方法。
-
方式1:不要使用
type="number"
,而是使用type="text"
方式 2:仅适用于 Android 手机的方式 1。检测 User-Agent 等。
方式 3:仅将方式 1 应用于损坏的实现。见:What models of Samsung smartphones have missing period for html5 input type="number"?
方式 4:使用type="tel"'
仅用于 Android 或损坏。 (不能在 iPhone 上使用,因为没有句号)
方式5:使用type="text"
,然后使用带有自定义行为的javascript。见:
期间始终显示:http://jsbin.com/heqeduyi/1/
句号显示一次3位数:http://jsbin.com/yinaweho/1
【讨论】:
下面的方法有用吗?<input inputmode="decimal" type="text" />
.【参考方案2】:
一种解决方法是使用type="tel"
而不是type="number"
。不幸的是,在 ios 上 type="tel"
没有在键盘上显示 ,
字符(至少我没有在那里找到它)。您可以检查 iOS 设备的用户代理,然后将 type
更改为 "number"
。
【讨论】:
【参考方案3】:您是否尝试将步骤设置为“任意”。喜欢:
<input type="number" name="quantity" step="any" />
我取出“价值”是因为我认为你应该这样做,即使只是为了测试
【讨论】:
【参考方案4】:我在 C#/Xamarin 中执行此操作,在代码方面(我动态构建表单)对我有用的是使用以下内容:
EditText edittext1 = new EditText(view.Context);
edittext1.InputType = Android.Text.InputTypes.NumberFlagDecimal;
希望对某人有所帮助
【讨论】:
【参考方案5】:要在 Android Samsung 设备上的数字键盘中使用小数点,请在 EditText 中使用:
android:inputType="numberDecimal"
【讨论】:
以上是关于三星 Galaxy 平板电脑不允许在“数字”类型的输入中输入浮点数的主要内容,如果未能解决你的问题,请参考以下文章