11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai un form et un bouton submit qui se présentent comme ceci :
<form method="post" class="needs-validation"  onsubmit="return sendData();" novalidate>
<button type="submit" class="btn btn-primary" name="valider" value="Confirmation" id="subBtn">Confirmation</button>

Ma fonction sendData() contient l'insertion du formulaire :
 function sendData()
{
  var emailP = document.getElementById("emailP").value; 
  var selectElmt = document.getElementById("genreP");
(...)

  $.ajax({
    type: 'post',
    url: '../controleurs/hab.php',
    data: {
      emailP:emailP,
      genreP:genreP,
   (...)
      
    },
    success: function (response) {
},
	error: function(error) {
	 $("#res").text("NOK");
	} }); } 


J'ai ma fonction pour vérifier le formulaire, si des champs ne sont pas remplis correctement. J'aimerais pouvoir stopper le onsubmit pour arrêter l'insertion si il a donc une erreur.
 (function() {
  'use strict';
  window.addEventListener('load', function() {
  
    var forms = document.getElementsByClassName('needs-validation');
   
    var validation = Array.prototype.filter.call(forms, function(form) {
      form.addEventListener('submit', function(event) {
        if (form.checkValidity() === true) { alert("Form OK"); }
		else {
          event.preventDefault();
          event.stopPropagation();
		  form.onsubmit = "return false"; 
		  alert("Form NOK");
       }
        form.classList.add('was-validated');
      }, false);
    });
  }, false);
})(); 


Faire form.onsubmit = "return false"; ne change rien. Quelqu'un aurait-il une proposition ?

Merci d'avance
Modifié par madBL91 (29 Jun 2020 - 17:44)