1. ✅ Apprenez une METHODE qui marche pour votre SEO ! Formation à distance avec Olivier Duffez et Fabien Facériès + aide pour prise en charge du financement
    Rejeter la notice

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 056
    J'aime reçus:
    294
    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
réécrire /categorie.php?id=xxx en /categorie/id URL Rewriting et .htaccess 13 Septembre 2020
Rediriger Index.php vers racine URL Rewriting et .htaccess 15 Août 2020
Galère pour supprimer index.php URL Rewriting et .htaccess 12 Août 2020
PHP Redis : Comment indexer les clés ? Développement d'un site Web ou d'une appli mobile 1 Août 2020
PHP session perso : session_start() en erreur. Développement d'un site Web ou d'une appli mobile 27 Juillet 2020
Quelle doc sur PHPRedis ? Développement d'un site Web ou d'une appli mobile 24 Juillet 2020
Memcached/PHP gestion de sessions Développement d'un site Web ou d'une appli mobile 22 Juillet 2020
Parser en php un fichier xml Développement d'un site Web ou d'une appli mobile 12 Juin 2020