Focus next input once reaching maxlength value

后端 未结 9 1179
梦毁少年i
梦毁少年i 2020-11-29 05:20

How can I focus the next input once the previous input has reached its maxlength value?

a: 
b: 

        
9条回答
  •  误落风尘
    2020-11-29 05:39

    If you're focused on creating card(debit/credit) number input type. Then clean an easily manageable jQuery version as follows:

    /*..............................................................................................
    * jQuery function for Credit card number input group
    ......................................................................................................*/
                // make container label of input groups, responsible
                $('.card-box').on('focus', function(e){
                    $(this).parent().addClass('focus-form-control');
                });
                $('.card-box').on('blur', function(e){
                    $(this).parent().removeClass('focus-form-control');
                });
                $('.card-box-1').on('keyup', function(e){
                    e.preventDefault();
                    var max_length = parseInt($(this).attr('maxLength'));
                    var _length = parseInt($(this).val().length);
                    if(_length >= max_length) {
                        $('.card-box-2').focus().removeAttr('readonly');
                        $(this).attr('readonly', 'readonly');
                    }
                    if(_length <= 0){
                        return;
                    }
                });
                $('.card-box-2').on('keyup', function(e){
                    e.preventDefault();
                    var max_length = parseInt($(this).attr('maxLength'));
                    var _length = parseInt($(this).val().length);
                    if(_length >= max_length) {
                        $('.card-box-3').focus().removeAttr('readonly');
                        $(this).attr('readonly', 'readonly');
                    }
                    if(_length <= 0){
                        $('.card-box-1').focus().removeAttr('readonly');
                        $(this).attr('readonly', 'readonly');
                    }
                });
                 $('.card-box-3').on('keyup', function(e){
                    e.preventDefault();
                    var max_length = parseInt($(this).attr('maxLength'));
                    var _length = parseInt($(this).val().length);
                    if(_length >= max_length) {
                        $('.card-box-4').focus().removeAttr('readonly');
                        $(this).attr('readonly', 'readonly');
                    }
                    if(_length <= 0){
                        $('.card-box-2').focus().removeAttr('readonly');
                        $(this).attr('readonly', 'readonly');
                    }
                });
                $('.card-box-4').on('keyup', function(e){
                    e.preventDefault();
                    var max_length = parseInt($(this).attr('maxLength'));
                    var _length = parseInt($(this).val().length);
                    if(_length >= max_length) {
                        return;
                    }
                    if(_length <= 0){
                        $('.card-box-3').focus().removeAttr('readonly');
                        $(this).attr('readonly', 'readonly');
                    }
                });
    /*..............................................................................................
    * End jQuery function for Credit card number input group
    ......................................................................................................*/
    /* Hide HTML5 Up and Down arrows. */
                                    input[type="number"]::-webkit-outer-spin-button, input[type="number"]::-webkit-inner-spin-button {
                                        -webkit-appearance: none; margin: 0;
                                    }
                                    input[type="number"] { -moz-appearance: textfield; }
                                    .card-box {
                                        width: 20%; display: inline-block; height: 100%; border: none;
                                    }
                                    
                                    .focus-form-control {
                                        border-color: #66afe9; outline: 0;-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
                                            box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
                                    }
    
    

提交回复
热议问题