输入-限制数字范围
Input - Limit number range
我有一个文本input
,我想将其限制为仅数字。没有其他字符。我还想限制从0到255。
如果输入了"非法"字符或金额,我希望它等待一秒钟,然后删除该字符或数字。到目前为止,我能够获得非法字符。
我想做的是:
- 让它等待一秒钟,然后删除它
- 限制0-255之间的数字
如果输入的数字超过255,我只希望最后一个数字等待,然后删除它自己。就像"非法"字符一样。
我已经实现了非法字符。这是代码:
JSFiddle
$('input[name="number"]').keyup(function(e) {
if (/'D/g.test(this.value)) {
// Filter non-digits from input value.
this.value = this.value.replace(/'D/g, '');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="number" />
尝试使用if
条件检查this.value
是否大于255
,如果为true,则使用String.prototype.slice()
将this.value
设置为输入的前两个字符
让它等一下怎么样?
尝试使用setTimeout()
function disableInput(el) {
// create array of checks on `el.value`
var checks = [/'D/g.test(el.value), el.value > 255];
// if `el.value` contains non-digit character,
// or is greater than 255 ;
// `Array.prototype.some()` checks for `true` value
// if either `checks[0]`, or `checks[1]` is `true` do stuff
// else set `el.value` to user input
if (checks.some(Boolean)) {
// disable input
$(el).prop("disabled", true)
// delay 1 second
setTimeout(function() {
if (checks[0]) {
// Filter non-digits from input value.
el.value = el.value.replace(/'D/g, '');
}
// if `this.value` greater than 255 , set `this.value` to
// first two characters of input
if (checks[1]) {
el.value = el.value.slice(0, 2);
};
$(el).prop("disabled", false).val(el.value).focus()
}, 1000)
}
}
$('input[name="number"]').keyup(function(e) {
disableInput(this)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="number" />
相关文章:
- 需要将变量设置为特定的数字范围
- 用于验证数字范围的正则表达式
- Javascript/Jquery:使用数字范围验证输入
- 创建使用用户输入的数字范围生成的随机数.(JavaScript)
- 需要Javascript数学表达式或公式来将数字范围放在组中
- Javascript / jQuery - 将一个数字范围映射到另一个数字范围
- 始终在 3K 数字范围内选择不同的数字
- Javascript:在数字范围之间转换,保持正确的比例
- 如何在其他重叠的数字范围之间找到可用的数字范围
- 检查数字范围内没有重复项的数字范围的最有效方法
- 在javascript中选择数字范围的算法
- 输入-限制数字范围
- 6位base36数字范围的正则表达式
- 在数字范围内查找空白
- 纯javascript html 5文本类型数字范围验证
- 正则表达式,用于数字中有空格的数字范围
- HTML表单下拉菜单指定数字范围
- 使用循环javascript的数字范围
- 如何在jquery中使用切换大小写(数字范围)
- 构造正则表达式以匹配数字范围