【问题标题】:Samsung Galaxy Tablet does not allow entering floating point numbers to inputs with "number" type三星 Galaxy 平板电脑不允许在“数字”类型的输入中输入浮点数
【发布时间】:2025-12-26 05:55:11
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 您的平板电脑是否设置为欧洲数字格式? - decimal pointcomma 在欧洲数字格式中反向使用
  • 很遗憾,没有,我正在美国键盘上进行测试,也在澳大利亚进行客户端测试。
  • 哪个 Galaxy-tab 和哪个版本的 android?
  • @PrashantGupta 我在 Android 3.2 上的 Galaxy Tab GT-P7510(10 英寸)上遇到问题
  • @Yash 这与 Android SDK 或 Android 布局无关。这是关于 Android 浏览器或 WebView 中的 HTML5 输入类型。

标签: android html android-browser html-input galaxy-tab


【解决方案1】:

是的,还有另一种方法。

  1. 方式1:不要使用type="number",而是使用type="text"
  2. 方式 2:仅适用于 Android 手机的方式 1。检测 User-Agent 等。
  3. 方式 3:仅将方式 1 应用于损坏的实现。见:What models of Samsung smartphones have missing period for 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

【讨论】:

  • 下面的方法有用吗? <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"
        

        【讨论】: