使用intl-tel-input angular 4输入错误的电话号码时添加验证

问题描述 投票:0回答:1

我使用intl-tel-input angular 4来验证电话号码,当我添加它显示的国家代码与电话号码但如果输入错误的电话它没有显示错误消息。为此,我使用此代码: -

<ngx-intl-tel-input   name="phone" id ="phone" [(value)]="model.phone"  required="required" [preferredCountries]="preferredCountries" ></ngx-intl-tel-input>

这是我的html文件代码,这里是我的component.ts文件代码: -

  $("#phone").intlTelInput({
     utilsScript: "../../build/js/utils.js"
  });

当我添加它显示错误消息: -

 "core.es5.js:1084 ERROR Error: Uncaught (in promise): TypeError: $(...).intlTelInput is not a function"

为此,我尝试了这段代码,但没有运气: -

  https://jsbin.com/yacokiyece/edit?html,css,js,output

这是我遵循的git代码: - https://github.com/webcat12345/ngx-intl-tel-input

angular2-routing angular2-forms angular4-forms intl-tel-input
1个回答
0
投票

您需要在default-country-ip.js文件中添加以下代码。

$("#phone").intlTelInput({
  initialCountry: "auto",
  geoIpLookup: function(callback) {
    $.get('//ipinfo.io', function() {}, "jsonp").always(function(resp) {
      var countryCode = (resp && resp.country) ? resp.country : "";
      callback(countryCode);
    });
  },
  utilsScript: "js/utils.js" // just for formatting/placeholders etc
});


  var telInput = $("#phone"),
  errorMsg = $("#error-msg"),
  validMsg = $("#valid-msg");

// initialise plugin
telInput.intlTelInput({
  utilsScript: "js/utils.js"
});

var reset = function() {
  telInput.removeClass("error");
  errorMsg.addClass("hide");
  validMsg.addClass("hide");
};

// on blur: validate
telInput.blur(function() {
  reset();
  if ($.trim(telInput.val())) {
    if (telInput.intlTelInput("isValidNumber")) {
      validMsg.removeClass("hide");
    } else {
      telInput.addClass("error");
      errorMsg.removeClass("hide");
    }
  }
});

// on keyup / change flag: reset
telInput.on("keyup change", reset);

查看此repo获取更详细的指南

© www.soinside.com 2019 - 2024. All rights reserved.