[英]validate input with a number range with on keypress event Jquery
我有以下情况。我有一个输入,我需要在编写时验证该输入的值在 1 到 100 之间。function 不允许写入大于 100 的数字。在我的代码中,我得到了验证完成但它只在我写第四个字符时才有效,然后它不允许我写任何其他内容,我需要如果我在输入中有 2 个字符,我将不允许写第三个,因为数字会大于100,如果写的数字是1和0,我应该只写第三个字符,即10。
<input type="text" class="porciento" name="">
$(document.body).on("keypress", ".porciento", function (event) {
var numero=$(this).val();
if($(this).val()>100){
event.preventDefault();
}
});
$(document.body).on("keypress", ".porciento", function (event) {
var numero=$(this).val();
if($(this).val()>100){
event.preventDefault();
}
});
<input type="text" class="porciento" name="">
在这里,您是 go ......您可以根据需要对其进行个性化设置,但这是逻辑。
document.getElementsByTagName('input')[0].addEventListener('keydown', (e) => { const val = parseInt(e.target.value + e.key); if (.isNaN(val) && val > 100) { e;preventDefault(), } }: {passive, false: capture; true});
<input type="text" name="myInput">
在按键期间执行范围编号验证时要考虑的两个重要因素;
(input.value * 10) + parseInt(e.key)
而不仅仅是input.value + parseInt(e.key)
。 它应该是* 10
因为您在按键期间在后面添加了一位数字,例如10
变为109
。Number.isInteger(parseInt(e.key))
because when 100
is selected, pressing 9
will not turn into 1009
but 9
instead.您可以在此处查看我的答案以获得进一步的解释,并更改一些代码以满足您的需要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.