Phone Number Field Validation and Limiting With Error message and Country Code Included

:pushpin: Quick Update: If you’re landing on this thread looking for a way to add country codes and limit phone number characters, you no longer need to use the custom JavaScript provided below!

Funnelish now includes built-in automatic phone number validation and a native country code selector for all checkout forms. It’s completely plug-and-play.

How the native feature works:

  • Smart Auto-Detection: Customers will see a country dropdown next to the phone field, automatically pre-selected based on their geolocation.

  • Built-in Validation: The form automatically enforces the correct character length and standardized international format for that specific region.

  • Higher SMS Delivery: By guaranteeing complete, correctly formatted numbers, this drastically improves delivery rates for your SMS marketing apps (like Klaviyo).

How to activate it (No coding required):

  1. Open your checkout page editor.

  2. Click on your phone number field.

  3. Make sure the Input Type is set to Number.

  4. Click Save Changes.

(Note: You won’t see the dropdown inside the editor, but it will automatically appear for customers on the live page or preview!)

Helpful Links & Resources:

General #updates checkout #validation scripts


Hi there,

Please add an input form element for the phone number, and set the data type correctly.
Go to Custom Codes > Custom JS(Body) and paste the following:

Here is a preview of what we have done: https://fathfey.funnelish.com/custom-code-for-form-validation-1703615972


Use the following share link for the full version of the page: Funnelish

<script>
        let max = 10;
        let min = 3;
        blockNonNumeric = true;
 
        CountriesMap = [
     {
         "name": "Afghanistan",
         "dial_code": "+93",
         "code": "AF"
     },
     {
         "name": "Aland Islands",
         "dial_code": "+358",
         "code": "AX"
     },
     {
         "name": "Albania",
         "dial_code": "+355",
         "code": "AL"
     },
     {
         "name": "Algeria",
         "dial_code": "+213",
         "code": "DZ"
     },
     {
         "name": "AmericanSamoa",
         "dial_code": "+1684",
         "code": "AS"
     },
     {
         "name": "Andorra",
         "dial_code": "+376",
         "code": "AD"
     },
     {
         "name": "Angola",
         "dial_code": "+244",
         "code": "AO"
     },
     {
         "name": "Anguilla",
         "dial_code": "+1264",
         "code": "AI"
     },
     {
         "name": "Antarctica",
         "dial_code": "+672",
         "code": "AQ"
     },
     {
         "name": "Antigua and Barbuda",
         "dial_code": "+1268",
         "code": "AG"
     },
     {
         "name": "Argentina",
         "dial_code": "+54",
         "code": "AR"
     },
     {
         "name": "Armenia",
         "dial_code": "+374",
         "code": "AM"
     },
     {
         "name": "Aruba",
         "dial_code": "+297",
         "code": "AW"
     },
     {
         "name": "Australia",
         "dial_code": "+61",
         "code": "AU"
     },
     {
         "name": "Austria",
         "dial_code": "+43",
         "code": "AT"
     },
     {
         "name": "Azerbaijan",
         "dial_code": "+994",
         "code": "AZ"
     },
     {
         "name": "Bahamas",
         "dial_code": "+1242",
         "code": "BS"
     },
     {
         "name": "Bahrain",
         "dial_code": "+973",
         "code": "BH"
     },
     {
         "name": "Bangladesh",
         "dial_code": "+880",
         "code": "BD"
     },
     {
         "name": "Barbados",
         "dial_code": "+1246",
         "code": "BB"
     },
     {
         "name": "Belarus",
         "dial_code": "+375",
         "code": "BY"
     },
     {
         "name": "Belgium",
         "dial_code": "+32",
         "code": "BE"
     },
     {
         "name": "Belize",
         "dial_code": "+501",
         "code": "BZ"
     },
     {
         "name": "Benin",
         "dial_code": "+229",
         "code": "BJ"
     },
     {
         "name": "Bermuda",
         "dial_code": "+1441",
         "code": "BM"
     },
     {
         "name": "Bhutan",
         "dial_code": "+975",
         "code": "BT"
     },
     {
         "name": "Bolivia, Plurinational State of",
         "dial_code": "+591",
         "code": "BO"
     },
     {
         "name": "Bosnia and Herzegovina",
         "dial_code": "+387",
         "code": "BA"
     },
     {
         "name": "Botswana",
         "dial_code": "+267",
         "code": "BW"
     },
     {
         "name": "Brazil",
         "dial_code": "+55",
         "code": "BR"
     },
     {
         "name": "British Indian Ocean Territory",
         "dial_code": "+246",
         "code": "IO"
     },
     {
         "name": "Brunei Darussalam",
         "dial_code": "+673",
         "code": "BN"
     },
     {
         "name": "Bulgaria",
         "dial_code": "+359",
         "code": "BG"
     },
     {
         "name": "Burkina Faso",
         "dial_code": "+226",
         "code": "BF"
     },
     {
         "name": "Burundi",
         "dial_code": "+257",
         "code": "BI"
     },
     {
         "name": "Cambodia",
         "dial_code": "+855",
         "code": "KH"
     },
     {
         "name": "Cameroon",
         "dial_code": "+237",
         "code": "CM"
     },
     {
         "name": "Canada",
         "dial_code": "+1",
         "code": "CA"
     },
     {
         "name": "Cape Verde",
         "dial_code": "+238",
         "code": "CV"
     },
     {
         "name": "Cayman Islands",
         "dial_code": "+345",
         "code": "KY"
     },
     {
         "name": "Central African Republic",
         "dial_code": "+236",
         "code": "CF"
     },
     {
         "name": "Chad",
         "dial_code": "+235",
         "code": "TD"
     },
     {
         "name": "Chile",
         "dial_code": "+56",
         "code": "CL"
     },
     {
         "name": "China",
         "dial_code": "+86",
         "code": "CN"
     },
     {
         "name": "Christmas Island",
         "dial_code": "+61",
         "code": "CX"
     },
     {
         "name": "Cocos (Keeling) Islands",
         "dial_code": "+61",
         "code": "CC"
     },
     {
         "name": "Colombia",
         "dial_code": "+57",
         "code": "CO"
     },
     {
         "name": "Comoros",
         "dial_code": "+269",
         "code": "KM"
     },
     {
         "name": "Congo",
         "dial_code": "+242",
         "code": "CG"
     },
     {
         "name": "Congo, The Democratic Republic of the Congo",
         "dial_code": "+243",
         "code": "CD"
     },
     {
         "name": "Cook Islands",
         "dial_code": "+682",
         "code": "CK"
     },
     {
         "name": "Costa Rica",
         "dial_code": "+506",
         "code": "CR"
     },
     {
         "name": "Cote d'Ivoire",
         "dial_code": "+225",
         "code": "CI"
     },
     {
         "name": "Croatia",
         "dial_code": "+385",
         "code": "HR"
     },
     {
         "name": "Cuba",
         "dial_code": "+53",
         "code": "CU"
     },
     {
         "name": "Cyprus",
         "dial_code": "+357",
         "code": "CY"
     },
     {
         "name": "Czech Republic",
         "dial_code": "+420",
         "code": "CZ"
     },
     {
         "name": "Denmark",
         "dial_code": "+45",
         "code": "DK"
     },
     {
         "name": "Djibouti",
         "dial_code": "+253",
         "code": "DJ"
     },
     {
         "name": "Dominica",
         "dial_code": "+1767",
         "code": "DM"
     },
     {
         "name": "Dominican Republic",
         "dial_code": "+1849",
         "code": "DO"
     },
     {
         "name": "Ecuador",
         "dial_code": "+593",
         "code": "EC"
     },
     {
         "name": "Egypt",
         "dial_code": "+20",
         "code": "EG"
     },
     {
         "name": "El Salvador",
         "dial_code": "+503",
         "code": "SV"
     },
     {
         "name": "Equatorial Guinea",
         "dial_code": "+240",
         "code": "GQ"
     },
     {
         "name": "Eritrea",
         "dial_code": "+291",
         "code": "ER"
     },
     {
         "name": "Estonia",
         "dial_code": "+372",
         "code": "EE"
     },
     {
         "name": "Ethiopia",
         "dial_code": "+251",
         "code": "ET"
     },
     {
         "name": "Falkland Islands (Malvinas)",
         "dial_code": "+500",
         "code": "FK"
     },
     {
         "name": "Faroe Islands",
         "dial_code": "+298",
         "code": "FO"
     },
     {
         "name": "Fiji",
         "dial_code": "+679",
         "code": "FJ"
     },
     {
         "name": "Finland",
         "dial_code": "+358",
         "code": "FI"
     },
     {
         "name": "France",
         "dial_code": "+33",
         "code": "FR"
     },
     {
         "name": "French Guiana",
         "dial_code": "+594",
         "code": "GF"
     },
     {
         "name": "French Polynesia",
         "dial_code": "+689",
         "code": "PF"
     },
     {
         "name": "Gabon",
         "dial_code": "+241",
         "code": "GA"
     },
     {
         "name": "Gambia",
         "dial_code": "+220",
         "code": "GM"
     },
     {
         "name": "Georgia",
         "dial_code": "+995",
         "code": "GE"
     },
     {
         "name": "Germany",
         "dial_code": "+49",
         "code": "DE"
     },
     {
         "name": "Ghana",
         "dial_code": "+233",
         "code": "GH"
     },
     {
         "name": "Gibraltar",
         "dial_code": "+350",
         "code": "GI"
     },
     {
         "name": "Greece",
         "dial_code": "+30",
         "code": "GR"
     },
     {
         "name": "Greenland",
         "dial_code": "+299",
         "code": "GL"
     },
     {
         "name": "Grenada",
         "dial_code": "+1473",
         "code": "GD"
     },
     {
         "name": "Guadeloupe",
         "dial_code": "+590",
         "code": "GP"
     },
     {
         "name": "Guam",
         "dial_code": "+1671",
         "code": "GU"
     },
     {
         "name": "Guatemala",
         "dial_code": "+502",
         "code": "GT"
     },
     {
         "name": "Guernsey",
         "dial_code": "+44",
         "code": "GG"
     },
     {
         "name": "Guinea",
         "dial_code": "+224",
         "code": "GN"
     },
     {
         "name": "Guinea-Bissau",
         "dial_code": "+245",
         "code": "GW"
     },
     {
         "name": "Guyana",
         "dial_code": "+595",
         "code": "GY"
     },
     {
         "name": "Haiti",
         "dial_code": "+509",
         "code": "HT"
     },
     {
         "name": "Holy See (Vatican City State)",
         "dial_code": "+379",
         "code": "VA"
     },
     {
         "name": "Honduras",
         "dial_code": "+504",
         "code": "HN"
     },
     {
         "name": "Hong Kong",
         "dial_code": "+852",
         "code": "HK"
     },
     {
         "name": "Hungary",
         "dial_code": "+36",
         "code": "HU"
     },
     {
         "name": "Iceland",
         "dial_code": "+354",
         "code": "IS"
     },
     {
         "name": "India",
         "dial_code": "+91",
         "code": "IN"
     },
     {
         "name": "Indonesia",
         "dial_code": "+62",
         "code": "ID"
     },
     {
         "name": "Iran, Islamic Republic of Persian Gulf",
         "dial_code": "+98",
         "code": "IR"
     },
     {
         "name": "Iraq",
         "dial_code": "+964",
         "code": "IQ"
     },
     {
         "name": "Ireland",
         "dial_code": "+353",
         "code": "IE"
     },
     {
         "name": "Isle of Man",
         "dial_code": "+44",
         "code": "IM"
     },
     {
         "name": "Israel",
         "dial_code": "+972",
         "code": "IL"
     },
     {
         "name": "Italy",
         "dial_code": "+39",
         "code": "IT"
     },
     {
         "name": "Jamaica",
         "dial_code": "+1876",
         "code": "JM"
     },
     {
         "name": "Japan",
         "dial_code": "+81",
         "code": "JP"
     },
     {
         "name": "Jersey",
         "dial_code": "+44",
         "code": "JE"
     },
     {
         "name": "Jordan",
         "dial_code": "+962",
         "code": "JO"
     },
     {
         "name": "Kazakhstan",
         "dial_code": "+77",
         "code": "KZ"
     },
     {
         "name": "Kenya",
         "dial_code": "+254",
         "code": "KE"
     },
     {
         "name": "Kiribati",
         "dial_code": "+686",
         "code": "KI"
     },
     {
         "name": "Korea, Democratic People's Republic of Korea",
         "dial_code": "+850",
         "code": "KP"
     },
     {
         "name": "Korea, Republic of South Korea",
         "dial_code": "+82",
         "code": "KR"
     },
     {
         "name": "Kuwait",
         "dial_code": "+965",
         "code": "KW"
     },
     {
         "name": "Kyrgyzstan",
         "dial_code": "+996",
         "code": "KG"
     },
     {
         "name": "Laos",
         "dial_code": "+856",
         "code": "LA"
     },
     {
         "name": "Latvia",
         "dial_code": "+371",
         "code": "LV"
     },
     {
         "name": "Lebanon",
         "dial_code": "+961",
         "code": "LB"
     },
     {
         "name": "Lesotho",
         "dial_code": "+266",
         "code": "LS"
     },
     {
         "name": "Liberia",
         "dial_code": "+231",
         "code": "LR"
     },
     {
         "name": "Libyan Arab Jamahiriya",
         "dial_code": "+218",
         "code": "LY"
     },
     {
         "name": "Liechtenstein",
         "dial_code": "+423",
         "code": "LI"
     },
     {
         "name": "Lithuania",
         "dial_code": "+370",
         "code": "LT"
     },
     {
         "name": "Luxembourg",
         "dial_code": "+352",
         "code": "LU"
     },
     {
         "name": "Macao",
         "dial_code": "+853",
         "code": "MO"
     },
     {
         "name": "Macedonia",
         "dial_code": "+389",
         "code": "MK"
     },
     {
         "name": "Madagascar",
         "dial_code": "+261",
         "code": "MG"
     },
     {
         "name": "Malawi",
         "dial_code": "+265",
         "code": "MW"
     },
     {
         "name": "Malaysia",
         "dial_code": "+60",
         "code": "MY"
     },
     {
         "name": "Maldives",
         "dial_code": "+960",
         "code": "MV"
     },
     {
         "name": "Mali",
         "dial_code": "+223",
         "code": "ML"
     },
     {
         "name": "Malta",
         "dial_code": "+356",
         "code": "MT"
     },
     {
         "name": "Marshall Islands",
         "dial_code": "+692",
         "code": "MH"
     },
     {
         "name": "Martinique",
         "dial_code": "+596",
         "code": "MQ"
     },
     {
         "name": "Mauritania",
         "dial_code": "+222",
         "code": "MR"
     },
     {
         "name": "Mauritius",
         "dial_code": "+230",
         "code": "MU"
     },
     {
         "name": "Mayotte",
         "dial_code": "+262",
         "code": "YT"
     },
     {
         "name": "Mexico",
         "dial_code": "+52",
         "code": "MX"
     },
     {
         "name": "Micronesia, Federated States of Micronesia",
         "dial_code": "+691",
         "code": "FM"
     },
     {
         "name": "Moldova",
         "dial_code": "+373",
         "code": "MD"
     },
     {
         "name": "Monaco",
         "dial_code": "+377",
         "code": "MC"
     },
     {
         "name": "Mongolia",
         "dial_code": "+976",
         "code": "MN"
     },
     {
         "name": "Montenegro",
         "dial_code": "+382",
         "code": "ME"
     },
     {
         "name": "Montserrat",
         "dial_code": "+1664",
         "code": "MS"
     },
     {
         "name": "Morocco",
         "dial_code": "+212",
         "code": "MA"
     },
     {
         "name": "Mozambique",
         "dial_code": "+258",
         "code": "MZ"
     },
     {
         "name": "Myanmar",
         "dial_code": "+95",
         "code": "MM"
     },
     {
         "name": "Namibia",
         "dial_code": "+264",
         "code": "NA"
     },
     {
         "name": "Nauru",
         "dial_code": "+674",
         "code": "NR"
     },
     {
         "name": "Nepal",
         "dial_code": "+977",
         "code": "NP"
     },
     {
         "name": "Netherlands",
         "dial_code": "+31",
         "code": "NL"
     },
     {
         "name": "Netherlands Antilles",
         "dial_code": "+599",
         "code": "AN"
     },
     {
         "name": "New Caledonia",
         "dial_code": "+687",
         "code": "NC"
     },
     {
         "name": "New Zealand",
         "dial_code": "+64",
         "code": "NZ"
     },
     {
         "name": "Nicaragua",
         "dial_code": "+505",
         "code": "NI"
     },
     {
         "name": "Niger",
         "dial_code": "+227",
         "code": "NE"
     },
     {
         "name": "Nigeria",
         "dial_code": "+234",
         "code": "NG"
     },
     {
         "name": "Niue",
         "dial_code": "+683",
         "code": "NU"
     },
     {
         "name": "Norfolk Island",
         "dial_code": "+672",
         "code": "NF"
     },
     {
         "name": "Northern Mariana Islands",
         "dial_code": "+1670",
         "code": "MP"
     },
     {
         "name": "Norway",
         "dial_code": "+47",
         "code": "NO"
     },
     {
         "name": "Oman",
         "dial_code": "+968",
         "code": "OM"
     },
     {
         "name": "Pakistan",
         "dial_code": "+92",
         "code": "PK"
     },
     {
         "name": "Palau",
         "dial_code": "+680",
         "code": "PW"
     },
     {
         "name": "Palestinian Territory, Occupied",
         "dial_code": "+970",
         "code": "PS"
     },
     {
         "name": "Panama",
         "dial_code": "+507",
         "code": "PA"
     },
     {
         "name": "Papua New Guinea",
         "dial_code": "+675",
         "code": "PG"
     },
     {
         "name": "Paraguay",
         "dial_code": "+595",
         "code": "PY"
     },
     {
         "name": "Peru",
         "dial_code": "+51",
         "code": "PE"
     },
     {
         "name": "Philippines",
         "dial_code": "+63",
         "code": "PH"
     },
     {
         "name": "Pitcairn",
         "dial_code": "+872",
         "code": "PN"
     },
     {
         "name": "Poland",
         "dial_code": "+48",
         "code": "PL"
     },
     {
         "name": "Portugal",
         "dial_code": "+351",
         "code": "PT"
     },
     {
         "name": "Puerto Rico",
         "dial_code": "+1939",
         "code": "PR"
     },
     {
         "name": "Qatar",
         "dial_code": "+974",
         "code": "QA"
     },
     {
         "name": "Romania",
         "dial_code": "+40",
         "code": "RO"
     },
     {
         "name": "Russia",
         "dial_code": "+7",
         "code": "RU"
     },
     {
         "name": "Rwanda",
         "dial_code": "+250",
         "code": "RW"
     },
     {
         "name": "Reunion",
         "dial_code": "+262",
         "code": "RE"
     },
     {
         "name": "Saint Barthelemy",
         "dial_code": "+590",
         "code": "BL"
     },
     {
         "name": "Saint Helena, Ascension and Tristan Da Cunha",
         "dial_code": "+290",
         "code": "SH"
     },
     {
         "name": "Saint Kitts and Nevis",
         "dial_code": "+1869",
         "code": "KN"
     },
     {
         "name": "Saint Lucia",
         "dial_code": "+1758",
         "code": "LC"
     },
     {
         "name": "Saint Martin",
         "dial_code": "+590",
         "code": "MF"
     },
     {
         "name": "Saint Pierre and Miquelon",
         "dial_code": "+508",
         "code": "PM"
     },
     {
         "name": "Saint Vincent and the Grenadines",
         "dial_code": "+1784",
         "code": "VC"
     },
     {
         "name": "Samoa",
         "dial_code": "+685",
         "code": "WS"
     },
     {
         "name": "San Marino",
         "dial_code": "+378",
         "code": "SM"
     },
     {
         "name": "Sao Tome and Principe",
         "dial_code": "+239",
         "code": "ST"
     },
     {
         "name": "Saudi Arabia",
         "dial_code": "+966",
         "code": "SA"
     },
     {
         "name": "Senegal",
         "dial_code": "+221",
         "code": "SN"
     },
     {
         "name": "Serbia",
         "dial_code": "+381",
         "code": "RS"
     },
     {
         "name": "Seychelles",
         "dial_code": "+248",
         "code": "SC"
     },
     {
         "name": "Sierra Leone",
         "dial_code": "+232",
         "code": "SL"
     },
     {
         "name": "Singapore",
         "dial_code": "+65",
         "code": "SG"
     },
     {
         "name": "Slovakia",
         "dial_code": "+421",
         "code": "SK"
     },
     {
         "name": "Slovenia",
         "dial_code": "+386",
         "code": "SI"
     },
     {
         "name": "Solomon Islands",
         "dial_code": "+677",
         "code": "SB"
     },
     {
         "name": "Somalia",
         "dial_code": "+252",
         "code": "SO"
     },
     {
         "name": "South Africa",
         "dial_code": "+27",
         "code": "ZA"
     },
     {
         "name": "South Sudan",
         "dial_code": "+211",
         "code": "SS"
     },
     {
         "name": "South Georgia and the South Sandwich Islands",
         "dial_code": "+500",
         "code": "GS"
     },
     {
         "name": "Spain",
         "dial_code": "+34",
         "code": "ES"
     },
     {
         "name": "Sri Lanka",
         "dial_code": "+94",
         "code": "LK"
     },
     {
         "name": "Sudan",
         "dial_code": "+249",
         "code": "SD"
     },
     {
         "name": "Suriname",
         "dial_code": "+597",
         "code": "SR"
     },
     {
         "name": "Svalbard and Jan Mayen",
         "dial_code": "+47",
         "code": "SJ"
     },
     {
         "name": "Swaziland",
         "dial_code": "+268",
         "code": "SZ"
     },
     {
         "name": "Sweden",
         "dial_code": "+46",
         "code": "SE"
     },
     {
         "name": "Switzerland",
         "dial_code": "+41",
         "code": "CH"
     },
     {
         "name": "Syrian Arab Republic",
         "dial_code": "+963",
         "code": "SY"
     },
     {
         "name": "Taiwan",
         "dial_code": "+886",
         "code": "TW"
     },
     {
         "name": "Tajikistan",
         "dial_code": "+992",
         "code": "TJ"
     },
     {
         "name": "Tanzania, United Republic of Tanzania",
         "dial_code": "+255",
         "code": "TZ"
     },
     {
         "name": "Thailand",
         "dial_code": "+66",
         "code": "TH"
     },
     {
         "name": "Timor-Leste",
         "dial_code": "+670",
         "code": "TL"
     },
     {
         "name": "Togo",
         "dial_code": "+228",
         "code": "TG"
     },
     {
         "name": "Tokelau",
         "dial_code": "+690",
         "code": "TK"
     },
     {
         "name": "Tonga",
         "dial_code": "+676",
         "code": "TO"
     },
     {
         "name": "Trinidad and Tobago",
         "dial_code": "+1868",
         "code": "TT"
     },
     {
         "name": "Tunisia",
         "dial_code": "+216",
         "code": "TN"
     },
     {
         "name": "Turkey",
         "dial_code": "+90",
         "code": "TR"
     },
     {
         "name": "Turkmenistan",
         "dial_code": "+993",
         "code": "TM"
     },
     {
         "name": "Turks and Caicos Islands",
         "dial_code": "+1649",
         "code": "TC"
     },
     {
         "name": "Tuvalu",
         "dial_code": "+688",
         "code": "TV"
     },
     {
         "name": "Uganda",
         "dial_code": "+256",
         "code": "UG"
     },
     {
         "name": "Ukraine",
         "dial_code": "+380",
         "code": "UA"
     },
     {
         "name": "United Arab Emirates",
         "dial_code": "+971",
         "code": "AE"
     },
     {
         "name": "United Kingdom",
         "dial_code": "+44",
         "code": "GB"
     },
     {
         "name": "United States",
         "dial_code": "+1",
         "code": "US"
     },
     {
         "name": "Uruguay",
         "dial_code": "+598",
         "code": "UY"
     },
     {
         "name": "Uzbekistan",
         "dial_code": "+998",
         "code": "UZ"
     },
     {
         "name": "Vanuatu",
         "dial_code": "+678",
         "code": "VU"
     },
     {
         "name": "Venezuela, Bolivarian Republic of Venezuela",
         "dial_code": "+58",
         "code": "VE"
     },
     {
         "name": "Vietnam",
         "dial_code": "+84",
         "code": "VN"
     },
     {
         "name": "Virgin Islands, British",
         "dial_code": "+1284",
         "code": "VG"
     },
     {
         "name": "Virgin Islands, U.S.",
         "dial_code": "+1340",
         "code": "VI"
     },
     {
         "name": "Wallis and Futuna",
         "dial_code": "+681",
         "code": "WF"
     },
     {
         "name": "Yemen",
         "dial_code": "+967",
         "code": "YE"
     },
     {
         "name": "Zambia",
         "dial_code": "+260",
         "code": "ZM"
     },
     {
         "name": "Zimbabwe",
         "dial_code": "+263",
         "code": "ZW"
     }
 ]
 
         let selectCodes = document.querySelector('select[data-name="country-codes"]');
         /******** code for Country codes application *********/
         CountriesMap.forEach(element => {
                 let e = document.createElement("option");
                 e.value = "";
                 e.innerText = element.name;
                 e.value = element.dial_code;
                 selectCodes.appendChild(e);
         });
 
         selectCodes.addEventListener('change', () => {
                 injectCountryCode();
         })
 
         /********** code for length validation ***************/
         const inpt = document.querySelector('input[data-type="phone"]');
         inpt.classList.add("unvalid-num");
 
         inpt.setAttribute('maxLength', max);
 
         inpt.addEventListener('keydown', () => {
                 handleInput(event);
         })
         /***************************************************/
         function handleInput(ev) {
 
                 let inputChar = ev.key;
                 console.log(ev.key);
 
                 const onlyContainsNumbers = (str) => /^\d+$/.test(str);
 
                 if(ev.key !== "Backspace" && !onlyContainsNumbers(ev.key) && blockNonNumeric) {
                         ev.preventDefault();
                 }
                 
                 if (inpt.value.length < min || inpt.value.length > max) {
                         unvalidInpt(inpt);
                 } else {
                         validInpt(inpt);
                 }
         }
         function validInpt(inpt) {
                 inpt.classList.remove("unvalid-num");
                 inpt.classList.add("valid-num");
         }
         function unvalidInpt(inpt) {
                 inpt.classList.remove("valid-num");
                 inpt.classList.add("unvalid-num");
         }
 
         function injectCountryCode() {
                 let selectedCode = selectCodes.value;
         }
 </script>
1 Like