Javascript 如何在关键事件上使用最大值限制文本框值?
我有一个文本框,我想使用键事件将该值限制为最大值 我尝试使用下面的代码,效果很好Javascript 如何在关键事件上使用最大值限制文本框值?,javascript,jquery,Javascript,Jquery,我有一个文本框,我想使用键事件将该值限制为最大值 我尝试使用下面的代码,效果很好 function validateRange(ele) { if(ele.val() < 0 || ele.val() > 100){ console.log('false'); }else{ console.log('true'); } } $('.digit-validation').keyup(function(event){
function validateRange(ele) {
if(ele.val() < 0 || ele.val() > 100){
console.log('false');
}else{
console.log('true');
}
}
$('.digit-validation').keyup(function(event){
validateRange($(this));
});
函数验证语言(ele){
if(ele.val()<0 | | ele.val()>100){
console.log('false');
}否则{
console.log('true');
}
}
$('.digit validation').keyup(函数(事件){
validateRange($(此));
});
HTML:
我想如果(ele.val()<0 | | ele.val()>100)
是停止按键
更新:我正在尝试进行值范围验证。为什么不使用
maxlength
HTML属性
<input type="text" maxlength="100" />
没有必要使用JS来实现这一点。我建议您尝试使用HTML5
输入类型的数字
,具有min
和max
属性:
<input type="number" min="0" max="100" />
.要进行验证,您需要两件事:
检查用户是否输入了数字
检查用户是否输入了介于0和100之间的内容
对于第一个,因为您使用jQuery,所以可以使用。
对于第二个,您需要将值解析为整数,这要感谢
这将给你:
函数验证语言(ele){
var val=ele.val();
如果(!$.isNumeric(val)| parseInt(val,10)<0 | | parseInt(val,10)>100){
$('#result').html('false');
}否则{
$('#result').html('true');
}
}
$('.digit validation').keyup(函数(事件){
validateRange($(此));
});
如果某人没有输入足够的文本,您想阻止他们输入文本吗?或者我误解了data min
下边界的用法了吗?有没有理由不使用maxlength
属性?它可以与(.eg.99.99)一起使用,所以我不能与maxlength一起使用。您试图解决的实际问题是什么?看起来你是在试图解决你对解决方案的选择,而不是解决你开始时遇到的实际问题。你的目标是什么?请参阅“”@SopheaPhy:您是否正在尝试执行最大/最小长度验证(或)值范围验证(如用户可以输入1到100之间的数字)?如果我输入(99.99),则maxlength无法控制。@Harry:我正在尝试执行值范围验证。parseFloat。他还可以使用小数。@RoyiNamir你说得对,这样会更精确。尽管如此,它还是可以与99.99
和parseInt
一起工作,因为它提供了99
。
<input type="number" min="0" max="100" />
Number.prototype.between = function (a, b, inclusive) {
var min = Math.min.apply(Math, [a,b]),
max = Math.max.apply(Math, [a,b]);
return inclusive ? this >= min && this <= max : this > min && this < max;
};
$('.digit-validation').keydown(function(event){
var v = parseFloat(this.value + String.fromCharCode(event.which));
return parseFloat(v).between(0,100,true);
});
function validateRange(ele) {
var val = ele.val();
if(!$.isNumeric(val) || parseInt(val,10) < 0 || parseInt(val,10) > 100){
$('#result').html('false');
}else{
$('#result').html('true');
}
}
$('.digit-validation').keyup(function(event){
validateRange($(this));
});