Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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 如何在关键事件上使用最大值限制文本框值?_Javascript_Jquery - Fatal编程技术网

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));
    });