15

我们的客户希望我们为输入字段显示数字键盘,所以基本上我创建了一个字段,例如:

<input type="number" name="quantity" step=".01" value="0.00" />

但是,Galaxy Tablet 删除了“.”。并在其前后合并数字,也禁用“。” 在键盘中。

使用 type="text" 时,是否有其他方法可以解决此问题或在输入字段中显示数字键盘?

注意:我尝试使用模式属性(适用于 iPhone)。我在使用 Android 2.1+ 的各种 Android 设备上测试了这个问题。我在任何其他 HTC 和三星设备上都没有遇到此错误。

4

5 回答 5

7

是的,还有另一种方法。

  1. 方式1:不使用type="number"但使用type="text"
  2. 方式 2:仅适用于 Android 手机的方式 1。检测用户代理等
  3. 方式 3:仅将方式 1 应用于损坏的实现。请参阅:哪些型号的三星智能手机缺少 html5 input type="number" 的句点?
  4. 方式 4:type="tel"'仅用于 Android 或损坏。(不能在 iPhone 上使用,因为没有期间)
  5. 方式5:使用type="text"自定义行为的javascript。看:

期间总是显示:http: //jsbin.com/heqeduyi/1/

句号显示一次 3 位数:http: //jsbin.com/yinaweho/1

于 2014-04-30T13:17:17.727 回答
3

一种解决方法是使用type="tel"而不是type="number". 不幸的是,iOStype="tel"上没有,在键盘上显示字符(至少我没有在那里找到它)。您可以检查 iOS 设备的用户代理,然后更改type"number".

于 2012-07-26T08:36:57.843 回答
1

您是否尝试将步骤设置为“任何”。喜欢:

<input type="number" name="quantity" step="any" />

我拿出了“价值”,因为我认为你应该这样做,即使只是为了测试

于 2012-11-06T00:35:57.347 回答
1

我在 C#/Xamarin 中执行此操作,并且在代码方面(我动态构建表单)对我有用的是使用以下内容:

   EditText edittext1 = new EditText(view.Context);
   edittext1.InputType = Android.Text.InputTypes.NumberFlagDecimal;

希望它可以帮助某人

于 2016-06-08T06:40:41.937 回答
-1

要在 Android Samsung 设备上的数字键盘中使用小数点,请在 EditText 中使用:

 android:inputType="numberDecimal"
于 2014-05-13T12:19:16.463 回答