【发布时间】:2021-11-26 03:14:24
【问题描述】:
如果任何一种输入框中只有数字,例如: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>
【问题讨论】:
-
=是分配。相等比较是==。这是你的问题。 -
另外,您最好对
input做出反应,而不是keyup。如果我在不使用键盘的情况下放入某些内容(例如自动填充、右键单击 -> 粘贴或拖放)怎么办? -
如果我输入 10 位,它也会添加 880,但如果输入 11 位,它只会添加 88.. 现在我的代码没问题,但是当它在 keyup 上找到 10 位时,它会自动添加而没有写 11digit..
-
也许您想对
change做出反应,而不是keyup/input? (因此只有用户离开该字段才会触发) -
是的,现在已修复,谢谢,我忘了添加更改功能而不是 keyup,谢谢伙计
标签: javascript jquery validation