作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有四个输入,每个输入一个数字。我想要做的是一旦设置了数字,自动将焦点设置到下一个输入。它们都有“输入”类。
这不太有效:
$(".inputs").keydown(function () {
$(this).next().focus();
});
最佳答案
我建议将每个文本框的 maxlength 设置为 1,并在 val.length
和 maxlength
相同时切换到下一个文本框。
$(".inputs").keyup(function () {
if (this.value.length == this.maxLength) {
$(this).next('.inputs').focus();
}
});
编辑:花了一些时间进行以下操作(未完全测试,但基本测试工作正常)
1. Allowing just numeric chars
2. Allow some control like del, backspace, e.t.c
3. Backspace on empty textbox will move to prev textbox
4. charLimit var to dynamically decide how many char you want to restrict.
代码:
$(function() {
var charLimit = 1;
$(".inputs").keydown(function(e) {
var keys = [8, 9, /*16, 17, 18,*/ 19, 20, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 144, 145];
if (e.which == 8 && this.value.length == 0) {
$(this).prev('.inputs').focus();
} else if ($.inArray(e.which, keys) >= 0) {
return true;
} else if (this.value.length >= charLimit) {
$(this).next('.inputs').focus();
return false;
} else if (e.shiftKey || e.which <= 48 || e.which >= 58) {
return false;
}
}).keyup (function () {
if (this.value.length >= charLimit) {
$(this).next('.inputs').focus();
return false;
}
});
});
关于jquery - 专注于下一个输入(jquery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10539113/
我是一名优秀的程序员,十分优秀!