【问题标题】:Input number does not limit decimal when "0" is typed输入“0”时输入数字不限制小数
【发布时间】:2019-08-02 19:14:36
【问题描述】:

我有一个场景,其中 HTML 输入字段必须只有 16 位,其中 6 位将分配给小数位,但是在下面的代码中发生了一件奇怪的事情,当我在末尾添加“0”时十进制值,数字不受限制,并且不断增加。我在这里有什么遗漏的吗?

<input type="number" name="val" min=0 max=9999999999.999999 step=".000001" save="" oninput="validity.valid ? this.save = value : value = this.save;"

【问题讨论】:

  • 嗯,1,010 不大于 1,01。您必须使用 js 检查输入的长度
  • 可以接受,但除了使用 javascript @Cornflake 还有其他方法吗
  • @Thiagz 你不能使用maxlength="17" 属性吗? (17 而不是 16,因为点也被计算在内)。
  • 你不能,这是 type="number" 的限制,与 maxlength 相同(这里讨论 stackoverflow.com/questions/18510845/…,你会找到一个快速脚本作为第二个答案)。
  • [save] 属性是什么?

标签: javascript html html-input


【解决方案1】:

用下面的代码解决了这个问题

<input type="number" name="val" min=0 max=9999999999.999999 step=".000001" save="" oninput="validity.valid && ((value.toString()).split('.')[1] === undefined || ((value.toString()).split('.')[1].length < 6)) ? this.save = value : value = this.save"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    相关资源
    最近更新 更多