Empecher la validation d'un formulaire par entrée [Résolu]

Messages postés
329
Date d'inscription
samedi 4 janvier 2003
Dernière intervention
29 mars 2015
- - Dernière réponse : krimog
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
14 février 2015
- 5 janv. 2010 à 15:03
    Saluté ...
j'ai un pb tout con ... pour changer...
par défaut dans les navigateurs la touche entrée sert à valider le formulaire ...
seulmement voila je voudrai pour moi que la touche entrée serve à lancer une opération ajax (fonction JS ... etc...)
j'ai le script suivant qui marche bien si le code de la touche n'est pas entrée... mais dès que je mets le code 13 (pour return)  ben mon formulaire est quand même valité ..j'aimerai simplement trouver l'opération à ajouter pour shunter ce comportement ;)
merci d'avance à qui aura la bonté de m'aiguiller !
@++

           
    function keyUserList(ev)        { 
            var alt      = ev.altKey;
            var shift    = ev.shiftKey;
            var ctrl     = ev.ctrlKey;
            var touche   = ev.keyCode;
           
            //alert (touche);
           
            if (touche==13) { 
                    filtreUserList(document.getElementById('filteruser').value);
                    return 0;
            }
        }

avec

 
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Dernière intervention
15 octobre 2013
3
Merci
Bonjour,
>>par défaut dans les navigateurs la touche entrée sert à valider le formulaire ...
    si existe, je pense...    ne le mets pas ?


<hr />                Cordialement            Bul        

Merci cs_bultez 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_bultez
Messages postés
631
Date d'inscription
samedi 28 septembre 2002
Dernière intervention
18 mai 2009
0
Merci
Il y a bien plus simple que de capturer les touches. Il suffit de jouer sur l'evenement onSubmit() de la balise Form en retournant "false".

Exemples :

<form name="monForm" onSubmit="maFonction();return false;"> ... </form>

ou

<form name="monForm" onSubmit="alert('Validation du formulaire');return false;"> ... </form>
Commenter la réponse de XtremDuke
Messages postés
329
Date d'inscription
samedi 4 janvier 2003
Dernière intervention
29 mars 2015
0
Merci
    yes merci à vous !!
j'avais feinté en mettant un input type button avec un événement onclick pour contourner ce pb mais je vais tester ces solutions qui permettront de garder la validation du formulaire si JS est désactivé ;)
@++
Commenter la réponse de cs_caviar
Messages postés
329
Date d'inscription
samedi 4 janvier 2003
Dernière intervention
29 mars 2015
0
Merci
    <form name="monForm" onSubmit="maFonction();return false;"> ... </form>
en fait ça ça ne marche pas ...
car du coup on ne peut plus soumettre le formulaire même en cliquant sur le bouton ...lol
je vais conserver la technique du input button validé par js ;)
merci
@+
Commenter la réponse de cs_caviar
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Dernière intervention
15 octobre 2013
0
Merci
>> ces solutions qui permettront de garder la validation du formulaire si JS est désactivé
    ah ben non...
    ça ne fonctionnera pas si le javascript est désactivé,
       (
dans ce cas seul fonctionne
          mais peut-être en prévoyant une solution de repli
                entre <noscript></noscript>  )


       mais comme tu nous parlais d'AJAX, donc JavaScript obligatoire ?

"le mieux", finalement, c'est-y pas de ne pas changer le comportement par défaut ?



<hr />                Cordialement            Bul        
Commenter la réponse de cs_bultez
Messages postés
631
Date d'inscription
samedi 28 septembre 2002
Dernière intervention
18 mai 2009
0
Merci
"je voudrai pour moi que la touche entrée serve à lancer une opération ajax (fonction JS ... etc...)"




Si tu veux executer une fonction JS/Ajax lors de l'appuie sur la touche "Entrer" alors la solution que je t'ai fournis fonctionne.
Maitenant si en plus tu veux en plus poster ton formulaire (???) tu peux utiliser l'instruction "tonFormulaire.submit()".

Cependant, j'aimerai bien comprendre pourquoi tu veux déclancher une requete Ajax et poster ton formulaire.
Commenter la réponse de XtremDuke
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
14 février 2015
0
Merci
Bonjour à tous.

Juste une petite indication quant à un problème que j'ai enfin réussi à solutionner.

Je suis exactement dans le même cas que caviar : j'ai un formulaire et je souhaite lancer une fonction ajax lors de l'appui sur entrée.

Mon formulaire était cependant, à chaque fois, validé quand je tapais sur entrée. Pourtant, je n'avais pas de bouton submit ni la moindre ligne de code permettant la validation du formulaire. Mais ce problème n'apparaissait que sur un page, alors que mon script Ajax était utilisé par 2 pages différentes

J'ai fini par comprendre (enfin il me semble) que lorsqu'il n'y a qu'un seul input dans un formulaire, l'appui sur entrée valide automatiquement celui-ci (sans qu'il n'y ait besoin ni de javascript ni de bouton submit).

J'ai donc utilisé une solution un peu bourrin (il y a certainement mieux) :
 un peu plus loin dans mon formulaire.



Je préfère indiquer ça parce que j'ai passé beaucoup de temps à comprendre d'où venait le problème, qui ne survenait pas si je remplaçait un (rempli par Ajax) par un (il faut avouer que ça parait bizarre - bien que logique avec l'explication ci-dessus).

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
Commenter la réponse de krimog
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
14 février 2015
0
Merci
Edit :
lorsqu'il n'y a qu'un seul input

=> un seul
(je n'ai pas testé avec tout, mais ça ne change rien s'il y a des radio ou des hidden en plus, dans ce formulaire)

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
Commenter la réponse de krimog

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.