Advertisement
alex91ckua

customization of phone format

Dec 4th, 2020 (edited)
410
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. "use strict";
  2.  
  3. var $j = jQuery.noConflict();
  4. var gfpiElements = [];
  5.  
  6. $j(document).bind('gform_post_render', function(event, form_id){
  7.  
  8.     var gfpValidationJsVars = window["gfpValidationJsVars_"+form_id];
  9.  
  10.     if (!gfpValidationJsVars) { return; }
  11.    
  12.     var telInputs = $j(gfpValidationJsVars.elements).toArray();
  13.     gfpiElements = telInputs;
  14.  
  15.     for (var i = 0; i < telInputs.length; i++) {
  16.  
  17.         var telInput = $j(telInputs[i]);
  18.    
  19.         telInput.after('<span class="int-phone valid-msg hide">'+ gfpValidationJsVars.successMessage +'</span>');
  20.         telInput.after('<span class="int-phone error-msg hide">'+ gfpValidationJsVars.failMessage +'</span>');
  21.  
  22.         telInput.blur(function() {
  23.             wpisValidateIntPhone($j(this));
  24.         });
  25.  
  26.         telInput.keydown(function() {
  27.           wpisHideValidationErrors($j(this));
  28.         });
  29.  
  30.         if ( telInput.val().length > 0 ) {
  31.             (function(telInput){
  32.                 setTimeout(function(){
  33.                     wpisValidateIntPhone(telInput);
  34.                 }, 3000);
  35.             })(telInput);
  36.         }
  37.  
  38.     }// END loop
  39.  
  40. });
  41.  
  42. function validateAllPhoneFields() {
  43.     if (!Array.isArray(gfpiElements) || gfpiElements.length === 0 || !gfpConfigJsVars.preventWrongPhoneSubmit) { return; }
  44.  
  45.     const telInputs = gfpiElements;
  46.     let valid = true;
  47.  
  48.     for (var i = 0; i < telInputs.length; i++) {
  49.         const telInput = $j(telInputs[i]);
  50.  
  51.         if (!telInput.intlTelInput("isValidNumber")) {
  52.             valid = false;
  53.         }
  54.  
  55.     }
  56.  
  57.     if (telInputs[0]) {
  58.         let $submitBtn = $j(telInputs[0]).closest('form').find(':submit');
  59.  
  60.         if ( valid ) {
  61.             $submitBtn.prop( "disabled", false );
  62.         } else {
  63.             $submitBtn.prop( "disabled", true );
  64.         }
  65.  
  66.     }
  67. }
  68.  
  69. function wpisHideValidationErrors(telInput) {
  70.   telInput.removeClass("error");
  71.   telInput.parent().parent().find(".error-msg").addClass("hide");
  72.   telInput.parent().parent().find(".valid-msg").addClass("hide");
  73. }
  74.  
  75. function wpisValidateIntPhone(telInput) {
  76.    
  77.     var errorMsg = telInput.parent().parent().find(".error-msg"),
  78.     validMsg = telInput.parent().parent().find(".valid-msg");
  79.  
  80.     wpisHideValidationErrors(telInput);
  81.  
  82.     if ($j.trim(telInput.val())) {
  83.  
  84.         if (telInput.intlTelInput("isValidNumber")) {
  85.             validMsg.removeClass("hide");
  86.             let nationalPhone = telInput.intlTelInput("getNumber");
  87. // NEW LINES
  88.             const countryData = telInput.intlTelInput("getSelectedCountryData");           
  89.             nationalPhone = nationalPhone.replace(`+${countryData.dialCode}`, `+${countryData.dialCode} `);
  90. // END NEW LINES
  91.             telInput.val(nationalPhone);
  92.         } else {
  93.             telInput.addClass("error");
  94.             errorMsg.removeClass("hide");
  95.             validMsg.addClass("hide");
  96.         }
  97.  
  98.         validateAllPhoneFields();
  99.     }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement