PHP empêcher form onsubmit si formulaire invalide

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Snowman91, 29 Juin 2020.

  1. Snowman91
    Snowman91 Nouveau WRInaute
    Inscrit:
    29 Juin 2020
    Messages:
    2
    J'aime reçus:
    0
    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
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 004
    J'aime reçus:
    284
    Déjà pourquoi avoir mis novalidate ? Qui est trigger uniquement lors d'un vrai submit (sans event JS).
    De plus il me semble que le onsubmit prend plutôt un callable :
    form.onsubmit = function () {
    return false;
    };

    Si tu veux faire le submit en JS, et utiliser la validation native, il faut appeler manuellement form.checkValidity() : https://www.w3schools.com/JS/js_validation_api.asp

    https://daverupert.com/2017/11/happier-html5-forms/
    https://www.html5rocks.com/en/tutorials/forms/constraintvalidation/
     
  3. Snowman91
    Snowman91 Nouveau WRInaute
    Inscrit:
    29 Juin 2020
    Messages:
    2
    J'aime reçus:
    0
    Merci ! ça marche
     
Chargement...
Similar Threads - PHP empêcher onsubmit Forum Date
Comment empêcher une page en php d' être partagé sur facebook? Facebook 10 Septembre 2015
empécher l'ajout d'un fichier php au bout d'une url php URL Rewriting et .htaccess 10 Février 2010
[RESOLU] PHP Empêcher Ajout enregistrement si formulaire vide Développement d'un site Web ou d'une appli mobile 15 Septembre 2009
Parser en php un fichier xml Développement d'un site Web ou d'une appli mobile 12 Juin 2020
UX sur Android (et iOS) : Le $_POST en php qui fait mal Développement d'un site Web ou d'une appli mobile 10 Juin 2020
formulaire de contact sans php Développement d'un site Web ou d'une appli mobile 5 Avril 2020
Ne pas mettre à jour forum Phpbb Administration d'un site Web 19 Février 2020
Phpbb et app.php et RSS ? Débuter en référencement 17 Février 2020
Title et meta déscription par PHP Référencement Google 20 Décembre 2019
Boucle PHP et référencement Rédaction web et référencement 13 Décembre 2019
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice