【问题标题】:Number input allows you to type numbers past the max and min?数字输入允许您输入超过最大值和最小值的数字?
【发布时间】:2014-02-03 03:59:06
【问题描述】:

使用数字输入时,滑块不会让您超出最大值和最小值,但如果您输入的数字超出最大值和最小值,它仍然可以让您这样做。有没有什么办法解决这一问题?

HTML:

<input id='age' type ='number'  min="0" max='120'/> <br> 
  <label for 'weight'>Your weight:</label>
  <input id='weight' type='number' min='0' max='3000'/> <br> <br>

此处的示例,关于输入最大值和最小值之外的数字:http://jsbin.com/uwiMeZOq/6/edit

如果没有解决方案,我可以使用什么其他类型的输入?

【问题讨论】:

    标签: html


    【解决方案1】:

    它或多或少地按预期工作:用户可以键入任何输入,如果不符合要求,则控件被视为无效。因此表单提交在支持的浏览器上会失败,并且元素匹配:invalid选择器,可以在JavaScript中分析情况。该元素不是旨在物理上阻止用户输入无效输入。为此,您需要 JavaScript 检查和合适的事件处理程序,基本上是 onkeypressonpaste。即使这样,用户也可能通过某些用户界面输入无效数据。

    input type=number 元素不太适合像人的年龄或体重这样的输入,它们没有逻辑上限,而且几乎总是通过键入一些数字比使用微调器更容易输入。

    更好的方法是使用input type=text,可能还使用pattern=\d+。您可以运行单独的数据敏感性检查(使用 JavaScript),具有更大的上限,真正涵盖所有已知情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-13
      • 1970-01-01
      • 2013-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-02
      • 1970-01-01
      相关资源
      最近更新 更多