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 :

Submit d'un formulaire et touche entrée


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Submit d'un formulaire et touche entrée
    Bonjour à tous!

    Voilà j'ai un petit souci que j'ai du mal à regler.
    J'ai un formulaire avec deux boutons submit
    sur chacun de ces boutons j'ai un onClick qui appelle
    deux fonctions différentes.
    Dans ma page, le bouton A apparait avant le bouton B.
    Jusque là tout va bien ..
    le problème c'est qu'en tapant sur la touche entrée, il me fait le
    submit du premier bouton rencontré à savoir le A
    Alors que j'aimera bien que ce soit l'autre.

    J'ai essayé de mettre un onkeypress au niveau du body avec une fonction qui verifie qu'on ait bien tapé sur "entrée" :
    if (window.event.type == "keypress" & window.event.keyCode == 13){
    return !(window.event.type == "keypress" & window.event.keyCode == 13);
    }
    le premier probleme c'est que sous firefox, ça ne passe pas ...
    le second souci c'est que j'ai desactivé la touche entrée sur l'ecran mais je ne sais pas comment faire pour faire le submit de mon bouton B avec appelle de la fonction qui est sur le onclick ...

    Euh j'espère m'être fait comprendre
    Et merci d'avance

    Autre chose, les pages sont générées donc je ne peux rien mettre en dur.

  2. #2
    Membre confirmé Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Points : 452
    Points
    452
    Par défaut
    Essaie ce petit script avec IE et Firefox et dis moi si ça marche (normalement oui) :

    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
     
    function detectTouche(e){
        if(parseInt(navigator.appVersion) >=4){
            if(navigator.appName == 'Netscape')  {// Pour Netscape, firefox, ...
           		if(e.which == 13) {
           			alert("coucou");
           		}
            }
            else{ // pour Internet Explorer
            	if(e.keyCode == 13) {
            		alert("coucou");
            	}
     
            }
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <body onKeyDown="detectTouche(event)";>

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    La detection de la touche Entrée ne pose pas vraiment de problème. Le problème étant de pouvoir "exécuter" la méthode onClick du bouton submit que je désire.

    Iil faudrait donc que je sache où l'utilisateur a cliqué. Et ça c'est un autre problème. Dans le formulaire, y a t il une variable ou un champs stockant l'ID du champs sur lequel on a cliqué ?

    En gros, y-a-t- l'équivalent de la variable $_POST du PHP ?

  4. #4
    Membre confirmé Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Points : 452
    Points
    452
    Par défaut
    Le coup de la touche entrée c'était la première étape
    Si ça amrche sous IE et Firefox, c'est déjà ça.

    Après tu veux que par défaut ça execute la fonction contenue dans le onclick du bouton B ?
    dans ce cas il faut remplacer les alert("coucou"); par le nom de cette fonction.
    Mais ce n'est peut-être pas aussi simple ?

    Tu peux poster ton formulaire ?

  5. #5
    Candidat au Club
    Inscrit en
    Avril 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    En fait l'idéal ce serait que j'arrive à faire ça.

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Javascript : OnkeyPress</title>
    </head>

    <script language="Javascript1.2" type="text/javascript">
    <!--
    function appuieToucheEntree (event) {
    if (event.type == "keydown" & event.keyCode == 13){
    alert('ENTREE');
    document.getElementById('testeuh').focus();
    event.keyCode=13;
    <!--document.myform.submit();-->
    return false;
    }
    }

    </script>

    <form action="javascript:alert('soumission formulaire')" method="get">
    <input id="teste" name="sfgsgsf" type="text" onKeyDown="appuieToucheEntree(event);">
    <input id="testeuh" name="gdfg" type="submit" onClick="javascript:alert('onclick');">
    </form>
    <body>
    </body>
    </html>
    Ce n'est évidemment qu'un exemple de test mais il faudrait que le paramètre de "document.getElementById(''); ait automatiquement l'id du bouton submit désiré (en l'occurence le premier qu'il rencontre).

    Merci de votre aide !

  6. #6
    Membre confirmé Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Points : 452
    Points
    452
    Par défaut
    J'essaye de comprendre la finalité du truc, mais j'avoue avoir un peu de mal

    Si ce que tu veux c'est : En appuyant sur la touche entrée, on fait comme si on avait cliquer sur le bouton B. C'est à dire exécuter une p'tite fonction javascript et soumettre le formulaire. Alors ça, c'est facile.
    Paut-être as-tu 2 actions différents suivant que l'on clique sur A ou B ?

Discussions similaires

  1. valider formulaire avec touche entrée
    Par dimainfo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/10/2009, 16h30
  2. validation de formulaire avec touche entrée
    Par skipitou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/03/2009, 00h45
  3. Formulaire et touche entrée.
    Par gregb34 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 17/08/2007, 14h48
  4. [HTML] Validation Formulaire et Touche Entrée
    Par BaBeuH dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 16/11/2006, 23h45

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