Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 限制输入类型=";“数字”;如果超出范围,则恢复到其最小值或最大值_Html_Input_Numbers_Restrict - Fatal编程技术网

Html 限制输入类型=";“数字”;如果超出范围,则恢复到其最小值或最大值

Html 限制输入类型=";“数字”;如果超出范围,则恢复到其最小值或最大值,html,input,numbers,restrict,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,则应重置为4 如果我

我有下面的代码

<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,则应重置为4

如果我们有任何其他标签而不是使用输入标签来限制,请给出建议


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

此解决方案可能就是您想要的:

$(函数(){
$(“输入”).change(函数(){
var max=parseInt($(this.attr('max'));
var min=parseInt($(this.attr('min'));
如果($(this).val()>max)
{
$(此).val(最大值);
}
else if($(this).val()

@Caspian还提供了一个有用的工具:

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

如果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;
    }
  }
}
函数最大值(el){
如果(el.value!=“”){
if(parseInt(el.value)parseInt(el.max)){
el.value=el.max;
}
}
}
用法示例

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


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

按键时可能会出现重复的“否”。我需要限制直接在文本框中输入任何禁用文本框编辑的方法,并且应该只使用按键?这可以工作,但我不希望使用jQuery。实际输入类型=仅处理数字,如果输入的数字不在表单中,则不允许用户提交表单range@AaronLavers在这个解决方案中,它接受“e”作为数字:)您应该在输入值上使用parseInt(),在else-if语句中使用isNaN()
<input type=number min=1 max=4 onkeyup=imposeMinMax(this)>