我有一个文本框,我想使用按键事件将该值限制为最大值
我尝试下面的代码,它的工作正常
function validateRange(ele) {
if(ele.val() < 0 || ele.val() > 100){
console.log('false');
}else{
console.log('true');
}
}
$('.digit-validation').keyup(function(event){
validateRange($(this));
});
HTML:
<form:input type="text" path="depth" cssClass="number inplace-textbox digit-validation" data-min="0" size="10" />
我想
if(ele.val() < 0 || ele.val() > 100)
是停止按键。更新:我正在尝试进行值范围验证。
最佳答案
我建议您尝试使用HTML5的input
类型number
以及min
和max
属性:
<input type="number" min="0" max="100" />
JS Fiddle demo。
这允许用户直接输入数字(使用键盘或复制/粘贴),并允许使用
step
属性控制增量(例如, step="2"
允许每次点击以下内容以2为增量或减量)微调箭头)。但是,如果必须使用非数字
input
: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);
});
JS Fiddle demo。