如果任何一个人在输入框中只输入数字,如:01234567890 (总共13位数字,国家代码),则自动在手机号码之前添加88,但如果任何人的号码与8801234567890,它不会添加之前的号码。另一种方法是,如果输入1234567890 total 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>
发布于 2021-10-12 13:32:51
通过将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的帮助。
https://stackoverflow.com/questions/69457266
复制相似问题