【问题标题】:country code will automatically added before mobile number手机号码前会自动添加国家代码
【发布时间】: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


【解决方案1】:

通过将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 的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-12
    • 1970-01-01
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    相关资源
    最近更新 更多