Une façon d'arrêter la soumission d'un formulaire est de renvoyer false depuis votre fonction JavaScript.
Lorsque le bouton Soumettre est cliqué, une fonction de validation est appelée. J'ai un cas en validation de formulaire. Si cette condition est remplie, j'appelle une fonction nommée returnToPreviousPage ();
function returnToPreviousPage() {
window.history.back();
}
J'utilise JavaScript et Dojo Toolkit .
Revenant plutôt à la page précédente, il soumet le formulaire. Comment puis-je abandonner cette soumission et revenir à la page précédente?
javascript
html
forms
Muhammad Imran Tariq
la source
la source
Réponses:
Vous pouvez utiliser la valeur de retour de la fonction pour empêcher la soumission du formulaire
et fonctionner comme
Dans le cas de Chrome 27.0.1453.116 m si le code ci-dessus ne fonctionne pas, veuillez définir le champ returnValue du paramètre du gestionnaire d'événements sur false pour le faire fonctionner.
Merci Sam d'avoir partagé des informations.
ÉDITER :
Merci à Vikram pour sa solution de contournement si if validateMyForm () renvoie false:
où validateMyForm () est une fonction qui retourne false si la validation échoue. Le point clé est d'utiliser l'événement de nom. Nous ne pouvons pas utiliser pour egepreventDefault ()
la source
false
ne semble avoir aucun effet; Chrome envoie toujours le formulaire. Par exempleonsubmit="return false;"
,. Cependant, définir lereturnValue
champ du paramètre du gestionnaire d'événements surfalse
fonctionne pour moi.validateMyForm()
a des erreursreturn false
ne seront pas atteintes. Cela peut donc échouer. Après plusieurs heures, j'ai trouvé une solution qui fonctionne et je l'ai affichée ci-dessous.Utiliser empêcher par défaut
Dojo Toolkit
jQuery
JavaScript vanille
la source
target
.Fonctionne dès maintenant (testé dans Chrome et Firefox):
Où validateMyForm () est une fonction qui retourne
false
si la validation échoue. Le point clé est d'utiliser le nomevent
. Nous ne pouvons pas utiliser par exemplee.preventDefault()
.la source
Utilisez simplement un simple
button
bouton au lieu d'un bouton de soumission. Et appelez une fonction JavaScript pour gérer le formulaire de soumission:Fonction dans une
script
balise:Vous pouvez aussi essayer
window.history.forward(-1);
la source
required
ne fonctionneront pas.Beaucoup de façons difficiles de faire une chose facile:
la source
Toutes vos réponses ont donné quelque chose à travailler.
ENFIN, cela a fonctionné pour moi: (si vous ne choisissez pas au moins un élément de case à cocher, il avertit et reste sur la même page)
la source
Sur la base de la réponse de @Vikram Pudi, nous pouvons également faire cela avec du Javascript pur
la source
Je recommanderais de ne pas utiliser
onsubmit
et de joindre à la place un événement dans le script.Ensuite, utilisez
preventDefault()
(oureturnValue = false
pour les navigateurs plus anciens).la source
onsubmit
?JS
au lieu d'HTML
utiliser des attributs. De cette façon, vous n'avez pas besoin de sauter d'avant en arrière autant en lisant le code de quelqu'un d'autreDisons que vous avez un formulaire similaire à celui-ci
Voici le javascript de la fonction confirmAction
Celui-ci fonctionne sur Firefox, Chrome, Internet Explorer (edge), Safari, etc.
Si ce n'est pas le cas, faites le moi savoir
la source
preventDefault()
etreturnToPreviousPage()
est parfaite et élégante. Il interrompt le fonctionnement normal tout comme vous concevriez n'importe quel capteur d'exception pour fonctionner. +1.Les réponses de Hemant et Vikram n'ont pas vraiment fonctionné pour moi dans Chrome. L'événement.preventDefault (); le script a empêché la page de se soumettre malgré la réussite ou l'échec de la validation. Au lieu de cela, j'ai dû déplacer l'événement.preventDefault (); dans l'instruction if comme suit:
Merci à Hemant et Vikram de m'avoir mis sur la bonne voie.
la source
Par exemple, si vous avez soumis un bouton sur le formulaire, pour arrêter sa propagation, écrivez simplement event.preventDefault (); dans la fonction appelée en cliquant sur le bouton Soumettre ou sur le bouton Entrée.
la source
Faites-le simplement ...
et voici votre JQuery
la source