我们的客户希望我们为输入字段显示数字键盘,所以基本上我创建了一个字段,如下所示:
<input type="number" name="quantity" step=".01" value="0.00" />
但是,Galaxy Tablet会擦除"."并合并前后的数字,还会禁用键盘中的"."。
使用type="text"时,有没有其他方法可以解决此问题或在输入字段中显示数字键盘?
注意:我尝试使用模式属性(适用于iPhone)。我在装有Android 2.1+的各种Android设备上测试了此问题。我没有在任何其他HTC和三星设备上遇到此错误。
是的,还有另一种方法。
- 方式1:不要用
type="number"
而是用type="text"
方式 - 2:仅对Android手机应用方式1。检测用户代理等 方式
- 3:仅将方式 1 应用于损坏的实现。请参阅:哪些型号的三星智能手机缺少 html5 输入类型="数字"的句点?
- 方式4:仅将
type="tel"'
用于Android或损坏。(不能在iPhone上使用,因为没有句号) - 方式5:使用
type="text"
,然后使用带有自定义行为的javascript。看:
句点始终显示:http://jsbin.com/heqeduyi/1/
句点显示一次 3 位数字:http://jsbin.com/yinaweho/1
解决方法是使用 type="tel"
而不是 type="number"
。不幸的是,在 iOS 上type="tel"
没有在键盘上显示,
字符(至少我在那里没有找到它)。您可以检查iOS设备的用户代理,然后在"number"
上更改type
。
您是否尝试将步骤设置为"任何"。喜欢:
<input type="number" name="quantity" step="any" />
我去掉了"价值",因为我认为你应该这样做,即使只是为了测试
我在 C#/Xamarin 中执行此操作,在代码端(我动态构建表单)对我有用的是使用以下方法:
EditText edittext1 = new EditText(view.Context);
edittext1.InputType = Android.Text.InputTypes.NumberFlagDecimal;
希望它对某人有所帮助
要在 Android 三星设备上的数字键盘中使用小数点,请在您的编辑文本中使用以下命令:
android:inputType="numberDecimal"