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之间
$('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再次感谢!