Si alguien escribe en el cuadro de entrada solo un número como: 01234567890 (total de 13 dígitos con código de país), entonces agrega automáticamente 88 antes del número de teléfono móvil, pero si alguien tiene el número 8801234567890 , no se agregará antes del número. Otro si escribe 1234567890 un total de 10 dígitos y luego agrega 880 antes del número. ¿Como arreglarlo? Intenté con agregar valor pero no funciona. Solo necesito mis condiciones, no siempre.
$(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>Se arregló con replace keyup para change y agregar == (Igual a) from = (operadores de asignación)
$('#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(); } });Gracias @ CherryDT por esta ayuda.