Javascript/Jquery:使用数字范围验证输入
我想验证预配置数字范围内的输入字段。 只允许1到24之间的数字 我该怎么办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(); });
使用如下自定义解决方案:
$('.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]"