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 :

Changer touche entrée


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de arcane
    Inscrit en
    Avril 2003
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 311
    Points : 178
    Points
    178
    Par défaut Changer touche entrée
    Bonjour,

    je voudrais avoir dans un formulaire la touche entrée qui ne valide pas le formulaire,
    mais qui remplace la touche tabulation (ou plutot qui fait la même chose)
    c'est à dire passer au champ suivant.
    Ne me demandez pas pourquoi, ce sont des habitudes des utilisateurs.
    Et c'est vrai que sur des séries de saisie de chiffre, c'est pratique.
    j'ai fait un script pompé à droite à gauche :
    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
    <script language='JavaScript'>
    function EntreeChampSuivant(event,n)
    {
        var m = n+1;
        // Compatibilité IE / Firefox
        if(!event && window.event) {
            event = window.event;
        }
        // IE
        if(event.keyCode == 13) {
            event.returnValue = false;
            event.cancelBubble = true;
            document.getElementById(m).focus();
        }
        // DOM
        if(event.which == 13) {
            event.preventDefault();
            event.stopPropagation();
        }
    }
    </script>
    ...
    <form method="post" enctype="multipart/form-data" action="test.exec.php">
    ...
    <input type="text" id="1" name="serie1" maxlength="10" size="10" onkeypress="EntreeChampSuivant(event,1);"/>
    <input type="text" id="2" name="serie2" maxlength="10" size="10" onkeypress="EntreeChampSuivant(event,2);"/>
    ...
    <input  id="4" name="traiter_form"  src="images/btn_traiter.gif" type="image" value="submit" alt="Traiter">&nbsp;&nbsp;&nbsp;
    </form>
    Ca marche impeccable.
    Sauf quand je ne mets pas id="x". Si je me trouve sur ce champ, il ne passe pas à l'input suivant. Normal.
    (je me sers de id pour nommer mon input pour des types particuliers, date par ex.)
    Mais il me valide le formulaire. Je voudrais qu'il ne le valide pas, lorsque je tape entrée
    et que je suis positionné sur ce champ.
    Je ne comprends pas pourquoi il valide le formulaire.
    j'ai bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(event.keyCode == 13) {
            event.returnValue = false;
            event.cancelBubble = true;
    Merci

  2. #2
    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 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    remplace le bouton submit du form par un type='button'

  3. #3
    Membre habitué Avatar de arcane
    Inscrit en
    Avril 2003
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 311
    Points : 178
    Points
    178
    Par défaut
    Ok, j'avais en fait 2 erreurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input id="4" name="traiter_form" type="button" value="Valider">
    et il faut aussi ajouter une autre fonction spécifique qui ne traite pas l'id : (trouvée aussi sur un thread)

    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
     
    function StopEntree(event)
    {
        // Compatibilité IE / Firefox
        if(!event && window.event) {
            event = window.event;
        }
        // IE
        if(event.keyCode == 13) {
            event.returnValue = false;
            event.cancelBubble = true;
        }
        // DOM
        if(event.which == 13) {
            event.preventDefault();
            event.stopPropagation();
        }
    }
     
    <input id='$heuresysteme' type='text' name='...' readonly size='15' value=\"$dhorigine\" onkeypress=\"StopEntree(event);\"/>
    Merci

  4. #4
    Membre habitué Avatar de arcane
    Inscrit en
    Avril 2003
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 311
    Points : 178
    Points
    178
    Par défaut
    En fait non, il ne faut pas mettre un bouton, mais une image :
    ca fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input border="0" id="4" name="traiter_form" src="images/btn_traiter.gif" type="image" value="submit" alt="Traiter">
    ca ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input id="4" name="traiter_form" type="button" value="Valider">
    ou : 
    <IMG id="4" src="images/btn_traiter.gif" alt="Modifier" onClick="document.forms['traiter_form'].submit() ">

  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 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Ton bouton image à le même comportement qu'un submit

    voici ce qu'il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input id="4" name="traiter_form" type="button" value="Valider" onclick="if(this.form.onsubmit()){this.form.submit()}>

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

Discussions similaires

  1. [WD-2013] Formulaires : Touche Entrée pour changer de champs
    Par Eskelea dans le forum VBA Word
    Réponses: 2
    Dernier message: 11/05/2015, 16h06
  2. [VB.NET][2.0]Changer le focus avec la touche Entrée
    Par Angath dans le forum Windows Forms
    Réponses: 2
    Dernier message: 17/11/2006, 10h11
  3. Touche entrée
    Par Neptune8 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 08/11/2004, 16h52
  4. Touche "Entrée" et fenetre modale
    Par pascalT dans le forum Composants VCL
    Réponses: 5
    Dernier message: 21/07/2004, 16h57
  5. touche entrée dans formulaire
    Par pram dans le forum XMLRAD
    Réponses: 8
    Dernier message: 15/04/2003, 09h13

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