【问题标题】:HTML5 number field not working for decimals without leading zero on Android 4HTML5 数字字段不适用于 Android 4 上没有前导零的小数
【发布时间】:2013-06-20 13:44:40
【问题描述】:

我有这个输入字段:

<input type='number' />

在 Android 4 设备上输入 .5 时,字段失去焦点后数字会消失。

测试日期:

  • 三星 Galaxy S2 - Android 4.0.3
  • 三星 Galaxy Note 2 - Android 4.0.4
  • 三星 Galaxy S3 - Android 4.1

这是一个已知的 Android 浏览器错误吗?有人找到解决方法吗?

【问题讨论】:

  • 您是否为输入设置了 maxlength 属性?
  • 不,应该吗?我在上面提到的字段中使用了相同的 html。
  • 不,但我注意到,当我为输入设置 maxlength 属性(仅限数字)时,当我达到限制时,我失去了您所描述的焦点。
  • 哦,好的,该字段在键入时本身并没有失去焦点,当您在字段外点击后该字段失去焦点(这是预期的)但数字消失了(这是不预期的)。
  • 您可以尝试在输入文本中插入模式。试试这个,看看它是否有效:&lt;input type="number" name="name" pattern="[0-9]+([\.|,][0-9]+)?"/&gt;

标签: android html mobile input decimal


【解决方案1】:

我们用这个小小的 javascript sn-p 解决了这个问题:

var keycodes = {
    period:190, decimal:110
};

$('input[type=number]').keyup(function (e) {
    if (!this.value && (e.keyCode === 190 || e.keyCode === 110)) {
        this.value = '0.';
    }
});

它会检查以确保文本框没有值(在我的测试设备上,文本框的值留有一个小数点,要么为空,要么为空字符串),然后在文本框中添加前导零。

我怀疑这种方法可能有问题,但我还没有看到。

【讨论】:

    猜你喜欢
    • 2017-08-18
    • 2018-05-22
    • 2012-03-30
    • 2022-06-30
    • 1970-01-01
    • 2011-03-08
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    相关资源
    最近更新 更多