国家码会自动加在手机号码前

country code will automatically added before mobile number

如果任何一个在输入框中仅输入数字,例如:01234567890(国家代码共 13 位)然后自动在手机号码前添加 88 但如果任何号码带有 8801234567890 它不会在数字之前添加。另一个如果输入 1234567890 总共 10 个数字然后在数字前添加 880。如何解决?我尝试增加价值但它不起作用。不是每次都只需要我的条件

$(document).ready(function() {

    $('#phone').keyup(function() {
        let total_length = this.value.length;
        
        if(total_length='11'){
          $("#phone").val("88"+$("#phone").val());
        }
        else if(total_length='10'){
          $("#phone").val("880"+$("#phone").val());
        }
        else{
           $("#phone").val();
        }
    });

    $.validator.addMethod("countryValid", function(value, element) {
        return this.optional(element) || /^(?:\+88|88)?(01[3-9]\d{8})$/i.test(value);
      }, "Please enter valid phone no."); 

  
    $("#my_form").validate({
        rules: {
        phone : {
            required: true,
            number: true,
            countryValid: true
        }
        }
    });

  });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.3/jquery.validate.min.js"></script>

<form id="my_form">

<input type="text" name="phone" id="phone" />
<br><br>
<button type="submit">Submit</button>

</form>

通过将 keyup 替换为 change 并从 =(赋值运算符)

添加 ==(等于)来修复它
$('#phone').change(function() {
        let total_length = this.value.length;
        
        if(total_length=='11'){
          $("#phone").val("88"+$("#phone").val());
        }
        else if(total_length=='10'){
          $("#phone").val("880"+$("#phone").val());
        }
        else{
           $("#phone").val();
        }
    });

感谢@CherryDT 的帮助。