Artigos sobre: Editor de Páginas

Como adicionar o campo DDI no formulário.

1. Adicione o formulário à página



Inclua o campo de telefone ( sem validação, mas você pode configurá-lo como obrigatório se desejar).


2. Encontre o ID do campo de telefone



Após adicionar o formulário, vá para a pré-visualização da página.

Clique com o botão direito sobre o campo de telefone e selecione Inspecionar.

No código HTML, procure pelo ID do campo (por exemplo, input_1731413733), conforme o exemplo abaixo:


3. Configure o código do DDI



Copie o código abaixo e cole-o no JavaScript/CSS da página. (Engrenagem do editor)

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/intl-tel-input@23.7.3/build/css/intlTelInput.css">
<script src="https://cdn.jsdelivr.net/npm/intl-tel-input@23.7.3/build/js/intlTelInput.min.js"></script>

<style>
	.iti__country-container{ z-index: 9999999; }
	.iti { width: 100%; }
</style>

<script>
	let camposDDI = ['input_1730117344']; // IDs dos campos de telefone
	if (camposDDI) {
		camposDDI.forEach((id) => { InstallDDI(id); });
		$('body').on('click', '.link_popup', function () {
			setTimeout(() => {
				camposDDI.forEach((id) => { InstallDDI(id,true); });
			}, 200);
		});

	}

	function InstallDDI(id_input, modal = false) {

		let ddi = "+55"; // DDI inicial
		let country = "BR"; // País inicial (para mais procurar em https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements)
		let customPlaceholder = ""; // Texto customizado para o placeholder

		const input = document.querySelector((modal ? '.gpc_modal ' : '')+"#" + id_input);
		if(input == null) return;

		input.style.paddingLeft = "48px";
		input.closest(".gpc_campos").style.zIndex = "9999999";
		input.closest("fieldset").style.zIndex = "9999999";

		const phone = window.intlTelInput(input, {
			customPlaceholder: function(selectedCountryPlaceholder, selectedCountryData) {
				return !customPlaceholder ? selectedCountryPlaceholder : customPlaceholder;
			},
			useFullscreenPopup: false,
			initialCountry: country,
			autoPlaceholder: "aggressive",
			strictMode: true,
			utilsScript: "https://cdn.jsdelivr.net/npm/intl-tel-input@23.7.3/build/js/utils.js",
		});

		input.addEventListener("countrychange", function () {
			const countryData = phone.getSelectedCountryData();
			const dialCode = countryData.dialCode;
			if (dialCode) {
				input.value = input.value.replace(ddi, "");
				if(input.value.startsWith(ddi)){ input.value = `+${dialCode}${input.value}`; }
				ddi = `+${dialCode}`;
				country = countryData.iso2;
			}
		});

		input.addEventListener("focus", function () {
			if (!input.value.startsWith(ddi)) input.value = ddi + input.value;
		});

		input.addEventListener("blur", function () {
			if (input.value != "" && !input.value.startsWith(ddi)){
				input.value = ddi + input.value;
			}
			input.dispatchEvent(new Event('input'));
		});

		input.addEventListener('input', function (e) {

			input.value = phone.getNumber();

			if(e.target.value === "") {
				phone.setCountry(country);
			}

			if (input.value.replace(ddi, "").trim() && phone.isValidNumber()) {
				e.target.classList.remove("personalized_error");
				e.target.closest(".gpc_campos").querySelector(".gpc_campos-erro").setAttribute("data-gtt", "");
			} else {
				e.target.classList.add("personalized_error");
				e.target.closest(".gpc_campos").querySelector(".gpc_campos-erro").setAttribute("data-gtt", "Telefone inválido");
			}
		});

		const form = input.closest("form");
		const originalSubmitHandler = form.onsubmit;

		form.onsubmit = function (e) {

			input.dispatchEvent(new Event('input'));

			if (input.classList.contains("personalized_error")) {
				e.preventDefault();
			} else if (typeof originalSubmitHandler === "function") {
				return originalSubmitHandler.call(form, e);
			}
		};

	}

</script>


4. Ajuste o ID do campo



Na linha 10 do código, substitua 'input_1730117344' pelo ID do seu campo de telefone..


5. Configure o DDI inicial



Na linha 23, altere o valor de ddi para o código do país desejado. Por exemplo, "+55" para Brasil ou "+1" para Estados Unidos.



6 . Configurar o código do país



Na linha 24 do código, você deve definir o país desejado usando o padrão de código ISO-3166 com dois dígitos. Por exemplo, para o Brasil, o código é "BR". Basta substituir o valor na linha abaixo:
let country = "BR"; (conforme o print)

Para encontrar o código correto de outros países, você pode consultar a lista completa no link: ISO-3166-1 Alpha-2.
Exemplo de uso para o Brasil: `let country = "BR";`

Pronto!



Com esse código, o campo de telefone no seu formulário agora exibirá o DDI configurado e funcionará de forma adaptada para diferentes países.

| É importante seguir cada um dos passos para garantir que tudo funcione corretamente.
Se ficou com alguma dúvida, não hesite em chamar nosso time de suporte!

Atualizado em: 14/11/2024

Este artigo foi útil?

Compartilhe seu feedback

Cancelar

Obrigado!