Desactiver la touche ENTER pour un formulaire

Fermé
Mnu - 20 nov. 2001 à 13:57
 User9834 - 7 janv. 2015 à 10:32
Bonjour,

J'aimerais savoir s'il est possible d'eviter qu'un formulaire soit envoye accidentellement lorsqu'on presse la touche ENTER.

A priori, il doit y avoir un moyen en Javascript, mais je ne sais pas lequel (et c'est ca le probleme)...

Merci d'avance
A voir également:

6 réponses

patatesaulard
18 nov. 2007 à 18:16
bonjour,
après pas mal de recherches j'ai conconcté ce petit code js qui peut aider grandement le bon remplissage de formulaires :
son rôle : désactiver une touche selon le champ où se trouve le focus et changer le focus à l'appui de la touche en question
dans le js

var toucheDesac=255; //la touche 255 est inusitée ; touche enter = 13
var focusSuivant="nom"; // le premier champ de formulaire ou n'importe quel id
var gk=window.Event?1:0;

function toucheenter(e) {
var touche=gk?e.which:window.event.keyCode; //pour compatibilité FF IE
if (touche == toucheDesac){
document.getElementById(focusSuivant).focus();
return false;
}
}
document.onkeydown = toucheenter;

dans le formulaire html
affecter un id à chaque input
indiquer le code de la touche à désactiver ainsi que le champ où porter le focus dans les input que l'on veut contrôler;
onFocus="toucheDesac='13';focusSuivant='societe';"
prévoir de réactiver la touche enter dès la perte du focus par ce champ
onBlur="toucheDesac='255';"
par exemple
<input type="text" name="nom" id="nom"
onFocus="toucheDesac='13';focusSuivant='societe';"
onBlur="toucheDesac='255';" >

donc dans le champ "nom" si on appui sur enter on passe au champ société...
et si on quitte le champ avec la souris ou Tab en mettant le focus sur un autre champ sans filtrage de touche (par exemple un textearea) la touche enter (13) est réactivée et fonctionne normalement.

petite contribution mais elle vaut ce qu'elle vaut
11
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
20 nov. 2001 à 16:39
La solution la plus simple semble de remplacer le bouton SUBMIT par un <INPUT type="button" onClick="document.nomForm.submit();">

Sinon tu peux également vérifier si la touche ENTREE et appuyer avec "event.keyCode()" si mes souvenir sont bon (ce qui n'est pas sûr).

-= Bobinours=-
10
choussamaster
3 déc. 2011 à 21:17
plus simple

<input ... onkeypress="refuserToucheEntree(event);"/>
et la fonction JavaScript :

function refuserToucheEntree(event)
{
// Compatibilité IE / Firefox
if(!event && window.event) {
event = window.event;
}
// IE
if(event.keyCode == 13) {
event.returnValue = false;
event.cancelBubble = true;
}
// DOM
if(event.which == 13) {
event.preventDefault();
event.stopPropagation();
}
}
4
@choussamaster,

Est-ce que tu met TYPE="submit" ou TYPE="button" ?

Chez moi en laissant "submit" ton code pour bloquer la touche ENTER ne fonctionne pas, et si je le remplace par "button", mon code ne prend plus en compte mon code javascript qui sert à valider mon formulaire. Résultat, c'est la porte ouverte à tout et n'importe quoi.

Si quelqu'un à une alternative je suis preneur.
0
Eric_92 Messages postés 1 Date d'inscription vendredi 6 juin 2014 Statut Membre Dernière intervention 6 juin 2014
6 juin 2014 à 18:45
Merci beaucoup pour ton aide, ça marche bien sous chrome, firefox et IE
Mais le problème, maintenant c'est que la touche entrée est tellement désactivée que je ne peux plus faire de retour à la ligne dans les texarea du formulaire !!!

Aurais tu une solution pour invalider le submit avec la touche entrée, mais toutefois pouvoir quand même faire des sautes de lignes (avec la touche entrée) dans mes textarea ?
0
Je cherchais une solution rapide et simple. Merci à toi car c'est tout ce que je souhaitais.
0
patatesaulard
9 janv. 2008 à 18:26
bonjour,
nomForm = nom que tu attribut à ton formulaire
<form name="nomForm" ou <form name="formulaire_contact"
à noter que cette méthode (submit sur onclick) rend le formulaire inopérant pour les visiteurs qui ont désactivé leur javascript (avec ses avantages et ses inconvéniants)
2

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Google c bien!
Mais les sujets contenants le moins de réponses sont souvent dans la premiere page! ... :S
Avec votre contribution vous m'avez vraiment aidé!
Merci!

(aidons un peu Google ;) )
0
Bonjour , j ai vu ton bout de code pour empecher que la touche entrée valide toute seule les formulaires, il m a l air vraiment bien, j ai juste une question qui me turlupine, dans ton code il y a " onClick="document.nomForm.submit() " J aimerai savoir a quoi correspond nomFrom, faut t i l donner un ID au formulaire? et si oui comment?
Merci beaucoup pour ces infos en esperant que de voir de tel code si bien fait sera une habitude pour le net.
MErci
greg
0