Empêcher le submit par la touche enter

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Empêcher le submit par la touche enter

Re: Empêcher le submit par la touche enter

par Kolrik » 28 juin 2012, 08:45

Bonjour,

Je pense avoir la solution, si j'ai bien compris le problème. (Je sais le sujet date mais ca peut aider d'autres)

ajoute un <form> avec ces attributs :
<form method='post' action='' onsubmit='tafonction();return false;'>

Au submit, (par enter ou par clic bouton ou encore à l'event submit()), "tafonction()" s'executera et le return false empêchera l'envoi du formulaire. :wink:
(Testé sur Internet Explorer, FireFox et GoogleChrome)

Re: Empêcher le submit par la touche enter

par max43 » 29 mai 2012, 14:46

J'ai essayé toute vos solution mais aucune ne semble fonctionner ^^.

Re: Empêcher le submit par la touche enter

par Nours312 » 11 janv. 2010, 13:37

Donc as tu testé de vérifier si le submit() est du ou non à la souris ...

[javascript]

var sub = function(event){
if(event.keyCode == 13)
event.stop();
}
[/javascript]

avec comme formulaire :
<form action="..." method="post" onsubmit="sub(event);">
...
</form>
cela dit, je rejoins l'idée de victor Brito !... c'est pas bien !... et j'en vois pas l'interet ...(à moins que ce soit pour éviter à des "..." d'envoyer le formulaire avant d'être aller jusqu'en bas ...)

Re: Empêcher le submit par la touche enter

par YpLee » 11 janv. 2010, 11:02

oui je suis tout à fait d'accort avec toi mais il s'agit d'une application interne que peut de gens utiliserons.

Re: Empêcher le submit par la touche enter

par Victor BRITO » 11 janv. 2010, 10:37

Le formulaire doit être envoyé uniquement par un clic sur le bouton et pas par la touche Enter.
Et que fais-tu des utilisateurs qui utilisent leur clavier au lieu de la souris parce qu'ils ne peuvent faire autrement (à cause d'un handicap moteur, d'une cécité ou de l'utilisation d'un poste qui n'est pas équipé d'une souris) ? :roll:

Le mieux est que tu renonces à ton idée : la soumission d'un formulaire doit pouvoir s'effectuer aussi bien à la souris qu'au clavier. C'est une question d'accessibilité.

Re: Empêcher le submit par la touche enter

par YpLee » 11 janv. 2010, 10:31

parceque je ne comprend pas l'utilité d'avoir un formulaire du coup...?
Le formulaire doit être envoyé uniquement par un clic sur le bouton et pas par la touche Enter.
Par contre la touche Enter ne doit pas être désactivée pour toute la page (ça c'est facile) mais uniquement pour le bouton submit.

Sur FireFox y'a pas de problème, mais ça ne marche pas sur Safari qui envoie le formulaire avec Enter de toute façons (même si il n'y aucun bouton d'ailleurs ... il suffi qu'un champs aie le focus).

Mais c'est pas grave je vais faire autrement :p

Merci à tous

Re: Empêcher le submit par la touche enter

par jojolapine » 08 janv. 2010, 19:44

En gros tu auras quelque chose comme ça:

Code : Tout sélectionner

<form onsubmit="return false;"> </form>
Après je suis pas sûr que ça fonctionne... :/

Sinon montre nous un peu plus ton histoire, et explique un peu mieux, parceque je ne comprend pas l'utilité d'avoir un formulaire du coup...?

Re: Empêcher le submit par la touche enter

par Victor BRITO » 08 janv. 2010, 14:24

L'événement qui concerne l'envoi d'un formulaire (que ce soit par la touche Entrée ou par un clic sur le bouton de validation), c'est onsubmit. L'événement onkeypress n'agit que sur le fait qu'une touche a été pressée. Pour empêcher la soumission d'un formulaire, c'est sur l'événement onsubmit qu'il faudrait agir.

Re: Empêcher le submit par la touche enter

par YpLee » 08 janv. 2010, 14:22

ça marche très bien :

Code : Tout sélectionner

onKeyPress="if (event.keyCode == 13) mafonction();"
Et pourquoi ne pas agir sur l'événement onsubmit ?
comment ça ? je ne comprend pas.

le bout de code que tu quote c'est pour envoyer ma fonction par la touche Enter.
Ce qui me gène c'est que, sur Safari, ça envoie aussi le submit ...

Re: Empêcher le submit par la touche enter

par Victor BRITO » 08 janv. 2010, 14:16

ça marche très bien :

Code : Tout sélectionner

onKeyPress="if (event.keyCode == 13) mafonction();"
Et pourquoi ne pas agir sur l'événement onsubmit ?

Re: Empêcher le submit par la touche enter

par YpLee » 08 janv. 2010, 12:21

Petite précision :

Je viens de tester avec un submit de type button et ça marche très bien sur FireFox le formulaire n'est pas envoyé par la touche Enter.
Par contre ça ne marche pas du tout sur Safari qui envoie le formulaire même si il n'y pas de bouton du tout. Il suffit en fait d'avoir un champ qui a le focus pour que Enter envoie le formulaire ... Et chez nous il y a bien 50% de mac ... Je crois que je vais laisser tomber mon idée et rester comme avant avec un bête lien qui envoie la fonction de recherche.

Mais si quelqu'un a la solution à mon problème je suis preneur quand même :roll:

Empêcher le submit par la touche enter

par YpLee » 08 janv. 2010, 11:14

Bonjour à tous et bonne année !

J'ai un petit soucis dans un code :

J'ai des champs de saisie Username pour aller chercher dans un ldap les info du user et du groupleader donc 2 champs séparé

J'ai constaté que beaucoup d'utilisateur utilise par reflex la touche Enter du clavier lorsqu'ils saisissent dans ces champs pour lancer la recherche .... j'ai donc lié ma fonction à la touche Enter pour ces 2 champs.

ça marche très bien :

Code : Tout sélectionner

onKeyPress="if (event.keyCode == 13) mafonction();"
sauf que ça envoie aussi le formulaire en même temps et comme j'ai un script de vérification ça l'active et me fait des jolis messages d'erreur "le champs blabla doit être rempli".

Le problème c'est que j'ai trouvé quelques info la dessus mais ça desactive la touche Enter pour toute la page ou tout le formulaire et j'en ai besoin quand même :?

J'ai essayé ça sur le bouton submit mais ça marche pas du tout :p

Code : Tout sélectionner

<input type="button" name="Send" value="Submit" onclick="if(event.keyCode == 13){return false;}else{return verifForm(this.form);}"/>
Si quelqun a une brillante idée je suis preneur,la j'en suis a me demander si je ne vais pas simplement desactiver le bouton submit tant que tout les champs ne sont pas remplis #-o

Merci d'avance