input text输完自动跳到下一个

应用场景:

短信验证码输入

效果:

893601-20160225131611286-1999105828.png

input输入框,输入完以后自动跳转到下一个

思路:

893601-20160225131649115-104471299.png
893601-20160225131701615-1698676138.png
893601-20160225131712677-1693131230.png

  1. 四个输入框
  2. 进入聚焦到第一个输入框
  3. 第一个输入框输完一个字符后自动聚焦到下一个输入框
1.四个输入框
<input type="text" name="sn1"  id="sn1"/>
<input type="text" name="sn2"  id="sn2"/>
<input type="text" name="sn3"  id="sn3"/>
<input type="text" name="sn4"  id="sn4"/>
2. 文档加载完成后聚焦到第一个输入框
$(function(){
    $("#sn1").focus();
})
3.用jquery获取到这四个输入框,遍历四个输入框,如果发生输
入事件,判断输入框内的值。如果小于1个字符,那么前一个输入
框获取到焦点;如果大于或者等于一个字符,那么后一个输入框
获取到焦点。这样就完成了input自动跳到下一个输入框。
$("input[name^='sn']").each(function(){
    $(this).keyup(function(e){
        if($(this).val().length < 1){
            $(this).prev().focus();
        }else{
            if($(this).val().length >= 1){
                $(this).next().focus();
            }
        }
    });
    
});

修复

893601-20160225131916474-117702508.png

如果不限定input输入框的长度,或出现输入完后可再输入的情况。

<input type="text" name="sn1" maxlength="1" id="sn1"/>
<input type="text" name="sn2" maxlength="1" id="sn2"/>
<input type="text" name="sn3" maxlength="1" id="sn3"/>
<input type="text" name="sn4" maxlength="1" id="sn4"/>

<script type="text/javascript">
    $(function(){
        $("#sn1").focus();

        //自动跳到下一个输入框
        $("input[name^='sn']").each(function(){
            $(this).keyup(function(e){
                if($(this).val().length < 1){
                    $(this).prev().focus();
                }else{
                    if($(this).val().length >= 1){
                        $(this).next().focus();
                    }
                }
            });
            
        });
    });
</script>   

完善

<input type="text" name="sn1" maxlength="1" id="sn1"/>
<input type="text" name="sn2" maxlength="1" id="sn2"/>
<input type="text" name="sn3" maxlength="1" id="sn3"/>
<input type="text" name="sn4" maxlength="1" id="sn4"/>

<script type="text/javascript">
    $(function(){
        $("#sn1").focus();
        function device_verify(){
            console.log($("#sn1").val()+$("#sn2").val()+$("#sn3").val()+$("#sn4").val());
        }

        //自动跳到下一个输入框
        $("input[name^='sn']").each(function(){
            $(this).keyup(function(e){
                if($(this).val().length < 1){
                    $(this).prev().focus();
                }else{
                    if($(this).val().length >= 1){
                        $(this).next().focus();
                    }
                }
            });
            
        });

        $("input[type='text'][id^='sn']").bind('keyup',
        function() {
            var len = $("#sn1").val().length + $("#sn2").val().length + $("#sn3").val().length + $("#sn4").val().length;
            if (len == 4) device_verify();
        });
    });

</script>

兼容IE的写法

参考 input text框 输完一个自动跳到下一个

转载于:https://www.cnblogs.com/ixiaohao/p/5216671.html

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值