专注于下一个输入(jquery)

前端之家收集整理的这篇文章主要介绍了专注于下一个输入(jquery)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有四个输入,每个输入一个数字.一旦设置了数字,我想做的就是将焦点自动设置到下一个输入.他们都有类“投入”.

这不行:

$(".inputs").keydown(function () {

            $(this).next().focus();
        });

解决方法

一旦val.length和maxlength相同,我建议将maxlength设置为1到每个文本框,并切换到下一个.

DEMO

$(".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;
        }
    });
});

DEMO

原文链接:https://www.f2er.com/jquery/180349.html

猜你在找的jQuery相关文章