IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

ne pas soumettre le formulaire en appuyant sur "entrer"


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 247
    Points : 99
    Points
    99
    Par défaut ne pas soumettre le formulaire en appuyant sur "entrer"
    Bonjour,

    Je souhaiterais désactiver la touche Entrée pour un seul champ input de mon formulaire.
    J'utilise la touche Entrée pour autre chose et je ne voudrais pas que mon formulaire soit validé... ça a l'air simple mais je rencontre des problèmes lors des événements.

    Merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Je suppose que tu as un bouton submit dans ta page ?

    Si oui, remplace le par un type button

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 247
    Points : 99
    Points
    99
    Par défaut
    Oui bonne idée, j'y avais pas pensé.
    Mais je pense que cela ne marche pas pour un champ input spécifique mais pour tous les champs du formulaire.
    A la limite, je veux bien empecher la soumission du formulaire lorsqu'on clique sur Entrée pour nimporte quel champ mais ça m'embete de remplacer l'input submit par un input bouton.
    Je suis en fait en train de créer un composant à inclure dans un formulaire donc je ne controle pas le type de bouton pour valider le formulaire.
    Par contre je veux bien un script que je peux appeler à partir d'un input afin de bloquer la soumission du formulaire par la touchée Entrée.
    J'ai du mal à gérer avec les onKeyUp et Down. La touche Entrée passe tout le tps...

    Merci

  4. #4
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Avec un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <script language="javascript">
    function Verif()
    {
    if (condition à faire)
       {
       alert("Erreur");
       }
    else
       {
       document.MonFormulaire.action='MaPage.asp';
       document.MonFormulaire.submit();
       }
    }
    </script>
    ....
    <input type="button" value="Valider" onclick="Verif()">
    .....

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    je me demande bien pourquoi on a inventé onsubmit () ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 247
    Points : 99
    Points
    99
    Par défaut
    Citation Envoyé par pc75
    Re,

    Avec un truc comme ça :
    Justement ce que je veux c'est ne pas mettre d'input type button....

    je me demande bien pourquoi on a inventé onsubmit () ?
    ça fait parti des evenements que j'ai du mal à gérer comme je l'ai dit dans mon premier post.
    Par ex ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         document.getElementById('champ-texte').form.onSubmit = function() { alert("coucou"); };
    devrait afficher "coucou" quand je soumets le formulaire... et bien non! Le formulaire est envoyé sans message!

    SpaceFrog tu sais comment je peux faire ?

    Pour te dire moi je pensais écrire qqch comme je viens d'ecrire en remplacant le message coucou par un test sur la touche appuyé. Si c'est la touche entrée je renvoie faux. Mais bon ça marche pas je ne sais pas pourquoi...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
         document.getElementById('champ-texte').form.onSubmit = function() { 
           if (event.keyCode == 13) return false;
         };

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <script type='text/javascript'>
     
    function verif(){
    					var retour =(document.forms[0].elements['one'].value.length>0)
    					document.forms[0].action=(retour)? "javascript:alert('c\\'est parti');":"javascript:alert('pas bien')";
    					document.forms[0].submit();
    					}
    </script>					
    <body>
    <form action="" onsubmit="alert();return verif()" >
    <input type="text" name='one' />
    <input type ="button" onclick='verif()' value="envoyer" />
     
    </form>
    </body>
     
    </html>

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 247
    Points : 99
    Points
    99
    Par défaut
    Citation Envoyé par SpaceFrog
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <script type='text/javascript'>
     
    function verif(){
    					var retour =(document.forms[0].elements['one'].value.length>0)
    					document.forms[0].action=(retour)? "javascript:alert('c\\'est parti');":"javascript:alert('pas bien')";
    					document.forms[0].submit();
    					}
    </script>					
    <body>
    <form action="" onsubmit="alert();return verif()" >
    <input type="text" name='one' />
    <input type ="button" onclick='verif()' value="envoyer" />
     
    </form>
    </body>
     
    </html>
    Je ne controle pas le bouton d'envoi du formulaire !!
    Et c'est là tout le problème.
    Je code une sorte de composant avec des champs input text et hidden.
    Le champ texte provoque l'apparition d'un Div généré en Ajax et dynamique en fct de ce que tape l'utilisateur. Dans ce div il peut sélectionner la valeur qu'il souhaite insérer dans le div et appuyer sur Entrée. Je ne veux pas que l'appui sur la touche Entrée provoque la soumission du formulaire...

    Mis à part ces champs input text et hidden, je ne controle pas du tout le reste de la page. Je ne connais donc pas l'id du formulaire. Je peux accéder aux éléments qu'à partir de mes champs input.

    Voilà j'espère que vous comprenez mieux maintenant, sinon n'hésitez pas à me poser des questions.

    Merci.. là jsuis vmt bloqué.

    J'ai aussi essayé ceci ans succés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
         if (event.keyCode == 13) {
           document.getElementById('champ-texte').form.onSubmit = function() { return false; };
         }
    Le debuggeur me dit que event n'est pas de propriétés.
    Pour windows.event même erreur

    Merci!

  9. #9
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" onclick="frm.submit()" />

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Fremy il semblerait sous IE tout du moins que le lancement dynamique du submit ne declenche pas le onsubmit ...


    par contre je ne comprends pas :
    Je ne controle pas le bouton d'envoi du formulaire !!
    Et c'est là tout le problème.
    tu veux controler quoi au juste ???

  11. #11
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <form>
    <p>
    <input type="text" name="t" id="t" />
    // ici des truc inaccessibles, dont le bouton "submit"
    </p>
    </form>
     
    <script type="text/javascript">
     
    document.getElementById("t").onkeypress=function(e){
     
    	ev= e ? e.which : event.keyCode;
     
            if(ev==13){
    		this.form.onsubmit=function(){
    			return false
    		}
     
    	}
    }
     
    </script>

  12. #12
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Citation Envoyé par SpaceFrog
    Fremy il semblerait sous IE tout du moins que le lancement dynamique du submit ne declenche pas le onsubmit ...
    Je sais, mais si il tient à lancer son onsubmit, il y a le code adéquat dans le forum (page CodeSource/FAQ)

  13. #13
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Citation Envoyé par javatwister
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <form>
    <p>
    <input type="text" name="t" id="t" />
    // ici des truc inaccessibles, dont le bouton "submit"
    </p>
    </form>
     
    <script type="text/javascript">
     
    document.getElementById("t").onkeypress=function(e){
     
    	ev= e ? e.which : event.keyCode;
     
            if(ev==13){
    		this.form.onsubmit=function(){
    			return false
    		}
     
    	}
    }
     
    </script>
    Lol, tu as oublié de sauvegarder l'ancien onsubmit dans ton code

    Et d'ailleurs, tu le réinstore comment

  14. #14
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut

    pekka77 dit qu'il n'y a pas accès; quelle importance que je le mette ou non?

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 247
    Points : 99
    Points
    99
    Par défaut
    Citation Envoyé par javatwister
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <form>
    <p>
    <input type="text" name="t" id="t" />
    // ici des truc inaccessibles, dont le bouton "submit"
    </p>
    </form>
     
    <script type="text/javascript">
     
    document.getElementById("t").onkeypress=function(e){
     
    	ev= e ? e.which : event.keyCode;
     
            if(ev==13){
    		this.form.onsubmit=function(){
    			return false
    		}
     
    	}
    }
     
    </script>
    Merci beaucoup javatwister !
    Mais je rencontre encore un problème bizarre...
    Lorsque j'appuie sur Entrée sur un autre champ input que celui d'ID "t", le formulaire est validé. Jusque là c'est normal.
    Lorsque j'appuie sur Entrée sur le champ d'id "t", la bouton Entrée ne génère pas la soumission du formulaire. Donc toujours normal, j'obtiens bien ce que je veux.

    Par contre une fois avoir Appuyer sur Entrée dans ce champ, le formulaire ne peut plus du tout être soumis. Si je vais dans un autre champ et que j'appuie sur Entrée le formulaire n'est pas soumis et même si j'appuie sur le bouton submit....
    C'est assez étrange parce que d'après ton code la fonction qui annule l'envoi du formulaire n'est appelé que si je suis dans le champ d'id "t" et que j'appuie sur la touche Entrée.

    J'ai l'impression que lorsqu'on force une fois le formulaire a ne pas être soumis par la touche Entrée, il ne peut plus jamais être soumis...

    Quelqu'un a une idée ?

    Pour répondre à SpaceFrog, je pense que maintenant tu comprends mieux avec la réponse de javatwister.

    Autre chose : J'ai inséré le code Javascript après le champ input d'id "t" mais avant le bouton submit.

    Mon composant doit pouvoir être inclu à l'intérieur d'un formulaire à la manière d'un "mega champ" si vous preferez. Il ne doit donc pas contenir de champ pour valider le formulaire.

    Merci pour votre aide.

  16. #16
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Citation Envoyé par FremyCompany
    Lol, tu as oublié de sauvegarder l'ancien onsubmit dans ton code

    Et d'ailleurs, tu le réinstore comment
    =On peut plus envoyer si vbCrLf a été envoyé au moins une fois... bref c'est pas une bonne idée

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 247
    Points : 99
    Points
    99
    Par défaut
    Citation Envoyé par FremyCompany
    =On peut plus envoyer si vbCrLf a été envoyé au moins une fois... bref c'est pas une bonne idée
    Ok je comprends mieux mon problème alors...
    Tu aurais une solution à me proposer FremyCompany ?

  18. #18
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <form>
    <p>
    <input type="text" name="t" id="t" />
    <input type="submit" />
    </p>
    </form>
     
    <script type="text/javascript">
    var ev;
     
     
    document.getElementById("t").onkeypress=function(e){
     
    	ev= e ? e.which : event.keyCode;
     
            if(ev==13){
    		this.form.onsubmit=function(e){
    			ev= e ? e.which : event.keyCode;
    			if(ev==13){
    				return false	
    			}
    		}
     
    		return false
     
     
    	}
    }
     
     
    </script>

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 247
    Points : 99
    Points
    99
    Par défaut
    Merci ça marche nickel !!!
    J'ai pas bein compris pourquoi le premier script ne marchait pas mais bon...
    Là j'ai l'impression d'une redondance en fait.
    Mais en tout cas celui là marche très bien!!
    Merci beaucoup!

  20. #20
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    ben oui, forcément, le script est un peu poussif mais c'est nécessaire

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. ext4 mvc : soumettre un formulaire à l'appuie sur entrée
    Par kimjoa dans le forum Ext JS / Sencha
    Réponses: 3
    Dernier message: 16/09/2011, 22h22
  2. soumettre un formulaire automatiquement : bug sur IE
    Par arnaudperfect dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/03/2007, 10h54
  3. Ne pas soumettre le formulaire
    Par Anduriel dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/06/2006, 13h05
  4. soumettre un formulaire en cliquant sur un lien
    Par psychoBob dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/06/2006, 12h36
  5. Ne pas soumettre le formulaire lorsqu'on presse ENTER
    Par Amnesiak dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 03/01/2006, 10h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo