Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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
Javascript/Jquery:使用数字范围验证输入_Javascript_Jquery - Fatal编程技术网

Javascript/Jquery:使用数字范围验证输入

Javascript/Jquery:使用数字范围验证输入,javascript,jquery,Javascript,Jquery,我想验证预配置数字范围内的输入字段。 只允许1到24之间的数字 我该怎么办 使用如下自定义解决方案: $('.field').keypress(function(event) { var val = parseInt($(this).val()) + HERE_I_SHOULD_SUM_THE_NEWLY_ADDED_DIGIT; if(val < 1 || val > 24) event.preventDefault(); });

我想验证预配置数字范围内的输入字段。 只允许1到24之间的数字

我该怎么办


使用如下自定义解决方案:

    $('.field').keypress(function(event) {
        var val = parseInt($(this).val()) + HERE_I_SHOULD_SUM_THE_NEWLY_ADDED_DIGIT;
        if(val < 1 || val > 24) event.preventDefault();
    });
$('.field')。按键(函数(事件){
var val=parseInt($(this).val())+这里应该对新添加的数字求和;
如果(val<1 | | val>24)事件.preventDefault();
});
我能够检索当前的输入值。
如何添加新添加的数字?

有一个JQuery插件可以帮助您进行验证,名为Valid8:

您需要使用如下正则表达式:

^([1-9]|[1]?[1-9]?|[2][0-4]|10)$
函数validateForm()
{
var x=document.forms[“myForm”][“fname”].value;
if(x==null | | x24)
{
警报(“值必须介于1和24之间”);
返回false;
}
}

这样的东西应该行得通

像这样的东西怎么样

​$("input").on("change", function() {
    var val = Math.abs(parseInt(this.value, 10) || 1);
    this.value = val > 25 ? 24 : val;
});​​​​​​​​​​​​​
演示:

试试这个

function validate() {
 var x = parseInt(value,10) // its the value from the input box;
 if(isNaN(x)||x<1||x>24)
 {
  alert("Value must be between 1 and 24");
  return false;
  }
}
函数验证(){
var x=parseInt(value,10)//它是输入框中的值;
if(isNaN(x)| x24)
{
警报(“值必须介于1和24之间”);
返回false;
}
}

现代浏览器中有内置的输入功能:

可在此处找到全面概述:

基本上,你可以写:

<input type="number" min="1" max="24" step="1" required>

@MichDart你说的不工作是什么意思?你看过演示了吗?您是否认为<>代码>更改>代码>事件只有在输入元素失去焦点时才运行?如果您需要立即做出反应,请尝试
keyup
event:。是的,当输入失去焦点时,它会起作用。是否可以更改此行为以处理按键事件?谢谢你!对这一行稍加修改:$(this.val)(val>24?24:val);我不能提交表格。我在用ajax。是否可以在输入插入期间检查有效性?这对于0是正确的。。。对不起;)这也是一个很好的解决方案。然而,我需要一个更直接的反应。我真的不想成为一个混蛋,但当前的编辑返回10的假。对于数值范围,将值转换为整数进行数值比较可能更容易。谢谢。我已经好几年没有使用正则表达式了,所以我想重新加入这个游戏。我知道,但我需要一些fallbacks@MichDart然后定义这些属性,如果浏览器无法处理,则使用javascript对其进行评估。这是最好的解决方案。@MichDart我更新了fiddle,这应该是在不抛弃旧浏览器的情况下兼容medern浏览器的方法。
<input type="number" min="1" max="24" step="1" required>
pattern="\d[0-3]"