Untitled
unknown
plain_text
10 months ago
3.4 kB
6
Indexable
<script>
(function () {
// Função para capturar os dados do formulário
function getFormData() {
var formData = {};
// Captura campos de input
var inputs = document.querySelectorAll('.gpc_campos-input input');
for (var i = 0; i < inputs.length; i++) {
var input = inputs[i];
formData[input.placeholder || 'input_' + i] = input.value;
}
// Captura campos de textarea
var textareas = document.querySelectorAll('.gpc_campos-textarea textarea');
for (var i = 0; i < textareas.length; i++) {
var textarea = textareas[i];
formData[textarea.placeholder || 'textarea_' + i] = textarea.value;
}
// Captura campos de radio
var radios = document.querySelectorAll('.gpc_campos-radio input:checked');
for (var i = 0; i < radios.length; i++) {
var radio = radios[i];
var radioGroup = radio.closest('.gpc_campos-radio');
var radioTitle = radioGroup ? radioGroup.querySelector('.gpc_campos-titulo') : null;
formData[radioTitle ? radioTitle.textContent.trim() : 'radio_' + i] = radio.value;
}
// Captura campos de checkbox
var checkboxes = document.querySelectorAll('.gpc_campos-check input:checked');
var checkboxValues = [];
for (var i = 0; i < checkboxes.length; i++) {
checkboxValues.push(checkboxes[i].value);
}
var checkboxGroup = checkboxes.length > 0 ? checkboxes[0].closest('.gpc_campos-check') : null;
var checkboxTitle = checkboxGroup ? checkboxGroup.querySelector('.gpc_campos-titulo') : null;
formData[checkboxTitle ? checkboxTitle.textContent.trim() : 'checkboxes'] = checkboxValues;
return formData;
}
// Função para enviar os dados ao dataLayer
function pushToDataLayer(formName, formData) {
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'gtm.formSubmit',
eventCategory: 'Form Submit',
formName: formName,
formData: formData,
});
console.log('Dados enviados ao dataLayer:', formData);
}
// Função para monitorar o clique no botão
function observeFormSubmission() {
var sendButton = document.querySelector('.gpc_botao.borda_igual.e_formulario.ativo');
if (sendButton) {
sendButton.addEventListener('click', function () {
var requiredFields = document.querySelectorAll('.gpc_campos-input input[placeholder*="*"]');
var allFieldsFilled = true;
// Verifica se todos os campos obrigatórios foram preenchidos
for (var i = 0; i < requiredFields.length; i++) {
if (requiredFields[i].value.trim() === '') {
allFieldsFilled = false;
break;
}
}
if (allFieldsFilled) {
var formData = getFormData();
pushToDataLayer('Request For A Free Quote', formData);
alert('Formulário enviado com sucesso!'); // Mensagem de sucesso (opcional)
} else {
alert('Por favor, preencha todos os campos obrigatórios.');
}
});
} else {
console.error('Botão de envio não encontrado.');
}
}
// Aguarda o carregamento do DOM para inicializar
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', observeFormSubmission);
} else {
observeFormSubmission();
}
})();
</script>
Editor is loading...
Leave a Comment