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 :

Formulaire sans submit


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Par défaut Formulaire sans submit
    Bonjour à tous !

    Voila un petit moment que je cherche dans les forum faq etc... mais je n'ai pas trouvé ce que je cherche.

    J'ai un formulaire contenant 2 inputs de type "text" (login et password). Je voudrais que lorsque j'appuis sur la touche entrée ça valide le formulaire (pour eviter le vilain bouton submit.

    J'ai essayé quelques manipulation mais sans résultat. Or, lorsque j'ai qu'un seul champs comme pour "rechercher", là ça marche sans mettre aucune option

    c'est possible de faire ça ou il il faut que je remette le vilain pas beau bouton?

  2. #2
    Membre chevronné Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Par défaut
    Les naigateurs HTML, pour éviter des erreurs de saisie lorsque plusieurs champs de type "text" sont présents dans le formulaire empèchent la validation de ce dernier par la saisie de la touche "<ENTREE>".

    du coup, tu es obligé d'utiliser du JavaScript pour valider ton formulaire en attrapant la touche entrée sur chacune de tes zones de saisie.

    La fonction JS ressemblera donc à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function keyHandler() {
        f = this.form; // Récupère le formulaire contenant le champ
         // c'est possible de le passer en paramètre à la place
        if ( event.keyCode == 13 ) {
            f.submit();
        }
    }
    et au niveau de tes zones de saisie, tu dois avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" onkeyup="javascript:keyHandler()"/>
    Si tu as déjà pas mal de zones de saisies et que tu veux ne pas tout avoir à modifier, tu peux utiliser une fonction JS comme celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function setHandler() {
        for ( var i=0 ; i<document.forms.length ; i++ ){
          f=document.forms[i];
          for ( var j=0 ; j<f.length ; j++ ){
             c=f[j];
             if( c.type=="text" ){
                c.onkeyup=keyHandler;            
             }
          }
        }
      }
    que tu dois appeler au chargement de ta page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="javascript:setHandler()">...
    Certains utilisent l'équivalent de la fonction keyHandler() adaptée pour être appliquée au document complet, mais je n'aime vraiment pas la solution...

    Je ne suis par contre pas certain à 100% que cette méthode fonctionne toujours avec gecko, il faudrait peut-être modifier un peu le code...

  3. #3
    Membre éclairé Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Par défaut
    J'ai testé mais malheureusement ça ne marche pas .

  4. #4
    Membre éclairé Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Par défaut
    J'ai fais pas mal de tests dessus. Avec le bugzilla de firefox j'ai pu voir que le problème venais d'un manque de paramètres.

    j'ai donc fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function keyHandler(f) {
        f = this.form; // Récupère le formulaire contenant le champ
         // c'est possible de le passer en paramètre à la place
        if ( event.keyCode == 13 ) {
            f.submit();
        }
    }
     
    -----
    <input type="text" onkeyup="javascript:keyHandler(this);"/>
    Mais ça ne marche toujours pas. J voit plut trop quoi faire là

  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='submit' style='visibility:hidden' />
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre éclairé Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Par défaut
    Et moi qui me prenais la tête...

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoyé / Actualisé un formulaire sans submit
    Par Jiyuu dans le forum Langage
    Réponses: 5
    Dernier message: 28/03/2010, 16h37
  2. Reload de formulaire sans submit
    Par Tiéry dans le forum Struts 1
    Réponses: 4
    Dernier message: 03/09/2008, 15h03
  3. valider un formulaire sans submit
    Par mimagyc dans le forum Langage
    Réponses: 5
    Dernier message: 02/05/2007, 23h08
  4. un formulaire sans submit ?
    Par zooffy dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 27/09/2006, 10h10
  5. [php4] passage formulaire sans submit ni Get .
    Par goulhasch dans le forum Langage
    Réponses: 8
    Dernier message: 18/07/2006, 15h04

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