Untitled

 avatar
unknown
plain_text
a month ago
3.4 kB
3
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