Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

128
Visualizações
Make modal show only when form is submitted successfully

I have a Boostrap 5 form with validations and when I add the data-bs-target attribute to send button the modal is triggered even if the form has invalid entires. I want to make the model triggered only when the form is successfully validated. I tried it with javascript but my code didn't work Below is my approach:


<div class="form-button mt-3">

 <button id="submit" type="submit" class="site-btn " data-bs-toggle="modal"  data-bs-target="">Send</button>

 </div>


<script type="text/javascript">
    (function() {
      'use strict'
      const forms = document.querySelectorAll('.requires-validation')
      Array.from(forms)
        .forEach(function(form) {
          form.addEventListener('submit', function(event) {
            if (!form.checkValidity()) {
              event.preventDefault()
              event.stopPropagation()
            }

            form.classList.add('was-validated'),
            document.getElementById('submit').dataset.target ='#confrimationModal';
         

          }, false)
        })
    })()
  </script>
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

You may programmatically open modal

const modal = new bootstrap.Modal(document.getElementById('confrimationModal'));
modal.show();

instead of

document.getElementById('submit').dataset.target ='#confrimationModal';

ref https://getbootstrap.com/docs/5.0/components/modal/#via-javascript

about 4 years ago · Juan Pablo Isaza Relatório

0

  1. Do not call anything submit
  2. Delegate
  3. manually trigger the modal
  4. Spelling (confirmationModal)
  5. dataset.bsTarget to change data-bs-target
(function() {
  'use strict'
  document.addEventListener('submit', function(event) {
    const tgt = event.target;
    if (tgt.matches(".requires-validation") && !tgt.checkValidity()) {
      event.preventDefault()
      event.stopPropagation()
    } else {
      tgt.classList.add('was-validated');
      document.getElementById('submitButton').dataset.bsTarget = '#confirmationModal';
    }
  })
})()
<div class="form-button mt-3">

  <button id="submitButton" type="submit" class="site-btn" data-bs-toggle="modal" data-bs-target="">Send</button>

</div>
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda