限制输入类型="数字"如果超出范围,则为最小值或最大值

时间:2016-04-01 06:12:53

标签: html input numbers restrict

我有以下代码

<form:input type="number" min="1" max="4" size="5" value="1" path="n" name='n' placeholder="<5" style="height:25px;width:60px"></form:input>

如果用户在文本框中输入超出范围的值,则应将其重置为最接近的最小值或最大值,例如,如果用户在文本框中输入小于1,则应将其重置为1,如果他输入更多它应该重置为4。

如果我们有任何其他标签而不是使用输入标签来限制

,请提供建议

已经有一个解决方案对我不起作用

3 个答案:

答案 0 :(得分:6)

此解决方案可能就是您之后的问题:jquery: set min max input in option type number

Assert.assertEquals(
        IntInterval.oneTo(10),
        IntLists.mutable.withAll(IntStream.rangeClosed(1, 10)));

Assert.assertEquals(
        IntInterval.oneTo(10),
        IntLists.immutable.withAll(IntStream.rangeClosed(1, 10)));

@Caspian还提供了一个工作小提琴:http://jsfiddle.net/Ddk67/75/

答案 1 :(得分:1)

实际输入类型=数字只处理,如果输入的数字不在范围内,则不允许用户提交表格

答案 2 :(得分:1)

如果HTML5实际上阻止输入值,那就太好了,因为仅阻止提交值并不能满足所有用例。

在这种情况下,我会在keyup上调用以下函数。

function imposeMinMax(el){
  if(el.value != ""){
    if(parseInt(el.value) < parseInt(el.min)){
      el.value = el.min;
    }
    if(parseInt(el.value) > parseInt(el.max)){
      el.value = el.max;
    }
  }
}

用法示例

<input type=number min=1 max=4 onkeyup=imposeMinMax(this)>

如果用户键入较大的值,则将其重置为最大值;如果用户键入较小的值,则将其重置为最小值。