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

HTML Discussion :

Comment faire pour que mon formulaire soir exécuté quand je tape Entrée


Sujet :

HTML

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 098
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 098
    Points : 946
    Points
    946
    Par défaut Comment faire pour que mon formulaire soir exécuté quand je tape Entrée
    Bonjour,
    j'ai un petit formulaire de deux champs, sans le bouton submit.
    A la place du bouton submit, j'ai mis un lien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:document.f_login.submit();" title="Se connecter" onclick="">Se connecter</a>
    Quand je clique sur Se connecter, ca marche très bien.

    Mais quand je tape Enter, ca ne fait rien et je pense que c'est a cause du bouton submit qui 'est pas.


    Comment pourrais-je alors faire ceci?

  2. #2
    Membre émérite Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Points : 2 444
    Points
    2 444
    Par défaut
    Bonsoir,
    il faut que tu transfères javascript:document.f_login.submit(); dans le onclick (sans javascript: ) pour que la touche enter déclenche l'évènement onclick.
    Pour info le couplage avec un onkeypress est inutile pour le éléments qui reçoivent le focus.

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 098
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 098
    Points : 946
    Points
    946
    Par défaut
    ha oui, mais j'aimerai qu'une fois le deuxieme champs rempli, que le formulaire soit envoyé en tapant enter sans devoir mettre le focus sur le lien.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Quel est l'intéret de ne pas utiliser le bouton submit ? Tu n'as qu'à l'utiliser et le styler pour qu'il ressemble à un vulgaire lien, si ce n'est que ça qui te chagrine.

  5. #5
    Membre émérite Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Points : 2 444
    Points
    2 444
    Par défaut
    Citation Envoyé par pierrot10 Voir le message
    ha oui, mais j'aimerai qu'une fois le deuxieme champs rempli, que le formulaire soit envoyé en tapant enter sans devoir mettre le focus sur le lien.
    Tu ferais mieux d'oublier ça, c'est pas du tout conventionnel et ça n'apporte presque rien, celui qui utilise le clavier sait généralement utiliser la touche tab pour faire "circule"r le focus au bon endroit. Et puis on est souvent pressé sur internet mais à ce point..

  6. #6
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 748
    Points
    3 748
    Par défaut
    Bonjour,

    Citation Envoyé par Erwan31 Voir le message
    il faut que tu transfères javascript:document.f_login.submit(); dans le onclick (sans javascript: ) pour que la touche enter déclenche l'évènement onclick.
    Les touches du clavier (y compris Enter) ne déclenchent pas l'événement onclick.
    La solution, c'est de détecter le keyCode et déclencher la fonction JS dans l'événement onkeypress.

    Citation Envoyé par pierrot10 Voir le message
    ha oui, mais j'aimerai qu'une fois le deuxieme champs rempli, que le formulaire soit envoyé en tapant enter sans devoir mettre le focus sur le lien.
    Il suffit de mettre en place une simple fonction JavaScript qui gère tes événements, une idée vite fait :
    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
     
    window.onload = function valideform() {
    	var ldv = document.getElementById('lienValidation');
     
    	ldv.onkeypress = toucheEnter;
    	ldv.onclick = clique;
     
    	function toucheEnter() {
    		if (event.keyCode == 13) {
    		document.forms['f_login'].submit();
    		}
    	}
     
    	function clique() {
    		document.forms['f_login'].submit();
    	}
    }
    Et dans le html :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <form action=".." method=".." id="f_login'">
    <a href="#" title="Se connecter" id="lienValidation">Se connecter</a>
    [...]

    Préfère le DOM : document.forms["id"].submit(); est plus propre que document.name.submit();

  7. #7
    Membre actif
    Avatar de (Benoit)
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 184
    Points : 289
    Points
    289
    Par défaut
    Normalement, lorsque tu appuie sur ENTER, le navigateur recherche un bouton SUBMIT dans la FORM ou tu te trouves. Si il le trouve, il submit la FORM.

    Donc inutile de faire compliqué : il suffit juste d'ajouter un bouton de SUBMIT dans ta form, que tu cache avec un coup de style="display:none;"

  8. #8
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 748
    Points
    3 748
    Par défaut
    Citation Envoyé par (Benoit) Voir le message
    Normalement, lorsque tu appuie sur ENTER, le navigateur recherche un bouton SUBMIT dans la FORM ou tu te trouves. Si il le trouve, il submit la FORM.

    Donc inutile de faire compliqué : il suffit juste d'ajouter un bouton de SUBMIT dans ta form, que tu cache avec un coup de style="display:none;"
    Il y a des développeurs qui préfèrent tester les champs en JS avant l'envoi des formulaires (pour éviter de surcharger le serveur), dans ce cas, le submit pose un problème.

  9. #9
    Membre actif
    Avatar de (Benoit)
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 184
    Points : 289
    Points
    289
    Par défaut
    Citation Envoyé par Macmillenium Voir le message
    Il y a des développeurs qui préfèrent tester les champs en JS avant l'envoi des formulaires (pour éviter de surcharger le serveur), dans ce cas, le submit pose un problème.
    C'est exact, mais il suffit alors de placer un onsubmit sur la form :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form onsubmit="return valider(this)"> ...

  10. #10
    Membre émérite Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Points : 2 444
    Points
    2 444
    Par défaut
    Citation Envoyé par Macmillenium Voir le message
    Les touches du clavier (y compris Enter) ne déclenchent pas l'événement onclick.
    Si, le onkeypress est inutile.

  11. #11
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 748
    Points
    3 748
    Par défaut
    Citation Envoyé par Erwan31 Voir le message
    Si, le onkeypress est inutile.
    Le couplage onclick et onkeypress est utile, car comme tu le sais Erwan31, la touche Enter ne peut pas déclencher l'évènement onclick si l'élément n'a pas encore le focus, ce qui rend cet évènement uniquement accessible en accès clavier et lors du clique.
    Je ne pense pas qu'un utilisateur dans des conditions normales pourra connaitre ce détail (d'où mon intervention, je commence toujours par traiter le cas général).

    Sachant que onkeypress devient aujourd'hui extrêmement pratique pour les RIA ayant un background full AJAX.

    Pour info le couplage avec un onkeypress est inutile pour le éléments qui reçoivent le focus.
    Pas tous les éléments qui reçoivent le focus, cela ne fonctionne pas sur les input text, radio et checkbox.

  12. #12
    Membre émérite Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Points : 2 444
    Points
    2 444
    Par défaut
    Citation Envoyé par Macmillenium Voir le message
    Le couplage onclick et onkeypress est utile, car comme tu le sait Erwan31, la touche Enter ne peut pas déclencher l'évènement onclick si l'élément n'a pas encore le focus, ce qui rend cet évènement uniquement accessible en accès clavier et lors du clique.
    Oui dans ce cas d'accord je ne faisais référence qu'aux éléments qui ont le focus mais ce genre de soumission prématurée (sur l'input text) n'est pas une solution recommandée.


    Citation Envoyé par Macmillenium Voir le message
    Pas tous les éléments qui reçoivent le focus, cela ne fonctionne pas sur les input text, radio et checkbox.
    Pas la touche enter mais la barre d'espace si (pour les checkbox et radios), pour l'input text ok ça j'ai jamais testé, faut dire aussi que c'est pas très commun comme implémentation.

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/05/2010, 00h11
  2. comment faire pour que mon parseur XML n'échappe pas les carctères tels que ">" par exemple ?
    Par _LittleFlea_ dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 16/10/2009, 16h25
  3. Réponses: 2
    Dernier message: 22/04/2009, 20h47
  4. Comment faire pour que mon image devienne un lien
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 38
    Dernier message: 25/06/2007, 20h49
  5. Réponses: 3
    Dernier message: 24/04/2007, 19h45

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