我有四个输入,每个输入一个数字.一旦设置了数字,我想做的就是将焦点自动设置到下一个输入.他们都有类“投入”.
这不行:
$(".inputs").keydown(function () { $(this).next().focus(); });
解决方法
一旦val.length和maxlength相同,我建议将maxlength设置为1到每个文本框,并切换到下一个.
$(".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; } }); });