Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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_Html_Input - Fatal编程技术网

Javascript 输入-限制数字范围

Javascript 输入-限制数字范围,javascript,jquery,html,input,Javascript,Jquery,Html,Input,我有一个文本input,我只想将其限制为数字。没有其他字符。我还想限制在0-255之间 如果输入了“非法”字符或金额,我希望它等待一秒钟,然后删除该字符或数字。到目前为止,我已经找到了非法角色 以下是我想做的: 让它等待一秒钟,然后删除它 将数字限制在0-255之间 如果输入的数据超过255个,我只希望最后一个数字等待,然后删除它本身。就像“非法”的角色一样 我已经实现了非法角色。代码如下: $('input[name=“number”]).keyup(函数(e){ 如果(/\D/g.t

我有一个文本
input
,我只想将其限制为数字。没有其他字符。我还想限制在0-255之间

如果输入了“非法”字符或金额,我希望它等待一秒钟,然后删除该字符或数字。到目前为止,我已经找到了非法角色

以下是我想做的:

  • 让它等待一秒钟,然后删除它
  • 将数字限制在0-255之间
如果输入的数据超过255个,我只希望最后一个数字等待,然后删除它本身。就像“非法”的角色一样

我已经实现了非法角色。代码如下:

$('input[name=“number”]).keyup(函数(e){
如果(/\D/g.test(此值)){
//从输入值中筛选非数字。
this.value=this.value.replace(/\D/g');
}
});

尝试使用
if
条件检查
此.value
是否大于
255
,如果为true,则使用
字符串.prototype.slice()将
此.value
设置为输入的前两个字符

让它等一下怎么样

尝试使用
setTimeout()

功能禁用输入(el){
//在'el.value'上创建检查数组`
var检查=[/\D/g.test(el.value),el.value>255];
//如果'el.value'包含非数字字符,
//或大于255;
//`Array.prototype.some()`检查`true`值
//如果'checks[0]`或'checks[1]`中的任何一个为'true',请执行以下操作
//否则将'el.value'设置为用户输入
if(checks.some(布尔)){
//禁用输入
$(el).prop(“已禁用”,真)
//延迟1秒
setTimeout(函数(){
如果(检查[0]){
//从输入值中筛选非数字。
el.value=el.value.replace(/\D/g');
}
//如果'this.value'大于255,请将'this.value'设置为
//输入的前两个字符
如果(检查[1]){
el.value=el.value.slice(0,2);
};
$(el.prop(“禁用”,false).val(el.value).focus()
}, 1000)
}      
}
$('input[name=“number”]”)。键控(函数(e){
禁用输入(此)
});


谢谢你的回答!但是,如果输入的值超过255,我不希望返回到255,我只希望最后一个数字被删除。答案不错,尽管如果使用
keydown
,它会“看起来”更好;)“但如果输入的值超过255,我不希望返回到255,我只想删除最后一个数字”如果输入的是
256
,结果应该是
25
?@Horay请参阅更新的帖子。使用
.slice()
替换将
此.value
设置为
255
@guest271314,这很有效!让它等一会儿怎么样?新的浏览器支持使用
@Horay-See@guest271314这里有一个新问题:@Horay-See-updated-post。已将
.queue()
部分删除为未删除necessary@guest271314再次感谢!