4位验证码输入框(支持字母、数字、中文等)

<div class="demo">
   <input type="text" class='demoInput'>
   <div class='numberDiv'></div>
   <div class='numberDiv'></div>
   <div class='numberDiv'></div>
   <div class='numberDiv'></div>
</div>
    $('.numberDiv').click(function () {
        $('.demoInput').focus();
    })
    var inputLock = false;
    $('.demoInput').on('compositionstart', function () {
        inputLock = true;
    })
    $('.demoInput').on('compositionend', function () {
        inputLock = false;
        changeNum()
    })
    $('.demoInput').on('input', function () {
        changeNum()
    })
    function changeNum() {
        if (!inputLock) {
            var numbers = $('.demoInput').val()
            var arr = numbers.split("")
            var numberDiv = $('.numberDiv');
            $.each(numberDiv, function (idx, ele) {
                var text = arr[idx] == undefined ? '' : arr[idx];
                var addClassFlag = arr[idx] == undefined ? '' : 'on'
                $(ele).html(text).removeClass('on').addClass(addClassFlag);
            })
            $('.demoInput').val($('.demoInput').val().slice(0, 4))
        }
    }
    * {
        padding: 0;
        margin: 0;
    }

    input[type='number'] {
        -moz-appearance: textfield;
    }

    input[type=number]::-webkit-inner-spin-button,
    input[type=number]::-webkit-outer-spin-button {
        -webkit-appearance: none;
        margin: 0;
    }

    .demo {
        width: 230px;
        height: 50px;
        margin: 200px auto;
        overflow: hidden;
        position: relative;
    }

    .demoInput {
        position: absolute;
        opacity: 1;
        top: 100px;
        z-index: -1;
    }

    .numberDiv {
        width: 50px;
        height: 50px;
        border: 1px solid #ccc;
        box-sizing: border-box;
        float: left;
        margin-left: 10px;
        font-size: 24px;
        color: red;
        line-height: 48px;
        text-align: center;
    }

    .numberDiv.on {
        border-color: red;
    }

    .numberDiv:first-of-type {
        margin-left: 0;
    }

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值