Comment empêcher l'envoi d'un formulaire à l'aide de jquery?
J'ai tout essayé - voir 3 options différentes que j'ai essayées ci-dessous, mais tout ne fonctionnera pas:
$(document).ready(function() {
//option A
$("#form").submit(function(e){
e.preventDefault();
});
//option B
$("#form").submit(function(e){
stopEvent(e);
});
//option C
$("#form").submit(function(){
return false;
});
});
Qu'est-ce qui ne va pas?
Mise à jour - voici mon html:
<form id="form" class="form" action="page2.php" method="post">
<!-- tags in the form -->
<p class="class2">
<input type="submit" value="Okay!" />
</p>
</form>
Y a-t-il quelque chose qui ne va pas ici?
return false;
après le.submit()
travaillé pour moi! J'avais le même problèmee.preventDefault();
code n'est pas atteint / exécuté.Réponses:
Deux choses ressortent:
form
. Faites plutôt référence à la balise en supprimant le #.La
e.preventDefault
syntaxe JQuery est également correcte, par exempleL'option C devrait également fonctionner. Je ne connais pas l'option B
Un exemple complet:
la source
$('#form')
à$('.form')
pour les attributs de classe.Vous avez probablement peu de formulaires sur la page et l'utilisation de $ ('form'). Submit () ajoute cet événement à la première occurrence du formulaire sur votre page. Utilisez plutôt le sélecteur de classe ou essayez ceci:
ou une meilleure version de celui-ci:
la source
Pour empêcher l'utilisation par défaut / empêcher la soumission de formulaire
Pour arrêter le bouillonnement d'événements, utilisez
Pour éviter la soumission du formulaire, «return false» devrait également fonctionner.
la source
event.stopPropagation()
etevent.preventDefault()
. Unefalse
valeur peut également être passée pour le gestionnaire comme raccourci pourfunction(){ return false; }
."J'ai aussi eu le même problème. J'avais aussi essayé ce que vous aviez essayé. Ensuite, je change ma méthode pour ne pas utiliser jquery mais en utilisant l'attribut "onsubmit" dans la balise form.
Ça marche.
Mais, lorsque j'ai essayé de mettre la valeur de retour faux uniquement dans "thefunction ()", cela n'empêche pas le processus de soumission, donc je dois mettre "return false;" dans l'attribut onsubmit. Donc, je conclus que mon application de formulaire ne peut pas obtenir la valeur de retour de la fonction Javascript. Je n'en ai aucune idée.
la source
false;
etreturn false;
. Vous auriez besoin d'avoironsubmit="return thefunction();"
J'ai eu le même problème et je l'ai résolu de cette façon (pas élégant mais ça marche):
Et cela a l'avantage, à mon avis, que vous pouvez inverser la situation à tout moment:
la source
$('#form').removeAttr('onsubmit');
Attachez l'événement à l'élément de soumission et non à l'élément de formulaire. Par exemple, dans votre html, faites comme ceci
la source
Vous pouvez simplement vérifier si le formulaire est valide si oui, exécuter la logique de soumission sinon afficher une erreur.
HTML
Javascript
la source
Lorsque j'utilise une
<form>
balise sans attributid="form"
et que je l'appelle directement par son nom de balise dans jquery, cela fonctionne avec moi.votre code dans un fichier html:
et en script Jquery:
la source
$('#form')
recherche un élément avecid="form"
.$('form')
recherche l'élément de formulairela source
Vous oubliez l'identifiant du formulaire et cela fonctionne
la source
d'ici: https://api.jquery.com/submit-selector/ (page intéressante sur les types de soumission)
la source
Cela semble également fonctionner et peut être légèrement plus simple:
la source
En utilisant jQuery, vous pouvez effectuer les opérations suivantes:
1- Utilisez l'événement de soumission de formulaire natif avec un bouton Soumettre, tout en empêchant le déclenchement de l'événement, puis
2- Vérifiez le formulaire Propriété valide Cela peut être implémenté comme suit:
1- HTML:
2- Javascript
la source