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 :

faire réagir un textarea lors de l'appui sur entrée


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 162
    Par défaut faire réagir un textarea lors de l'appui sur entrée
    Bonjour,

    je suis un peu embêté avec un formulaire où je souhaite changer un input de type text en textarea.

    En effet, quand j'utilise un input, il n'y a pas de souci, je tappe entrée et cela submit mon formulaire, mais dans le textarea, cela passe à la ligne suivante.

    Je voulais savoir comment faire en sorte que cela se passe comme sur msn par exemple: entrée pour valider, et ctrl+entrée pour passer à la ligne.

    J'ai cherché du coté onKeyEvent, mais je ne suis pas tombé sur une solution qui tient la route.

    Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Avril 2006
    Messages : 245
    Par défaut
    Bonjour, voici un petit code :

    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
     
    <html>
        <head>
        </head>
        <body>
            <form method="POST" id="MyForm" action="essai2.html">
                <textarea id="MyTextArea">Ecrivez votre texte ici</textarea>
            </form>
           <script>
                textArea = document.getElementById('MyTextArea');
                formulaire = document.getElementById('MyForm');
     
                textArea.onkeypress = traiteEntree;
     
                function traiteEntree(e) {
                    if(navigator.appName == "Microsoft Internet Explorer") {
                        if(window.event.keyCode == 13)
                            formulaire.submit();
                    }
                    else {
                        if(e.keyCode == 13)
                            formulaire.submit();
                    }
                }
            </script>
        </body>
    </html>
    L'idee c'est de surveiller l'évènement onKeyPress et de tester à chaque touche pressée, dès que l'on a le code 13 qui correspond à la touche Entrée, on force la soumission du formulaire avec submit()

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 162
    Par défaut
    Ha ok, il faut soustraiter par une fonction, merci pour la réponse!

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Avril 2006
    Messages : 245
    Par défaut
    Euh attention je viens de modifier mon message précédent !!!

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 162
    Par défaut
    J'en ai pris note, j'avais apporté cette modification

  6. #6
    Membre averti
    Inscrit en
    Août 2005
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 43
    Par défaut
    moi, c'est l'inverse, j'ai ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <form name="ajoutmessageforum" action="validmessageforum.php" method="POST">
    <!-- bloc de donnée à enregister dans la base -->
    Message : <br> <input name="message"  type="textarea" style="width:350px; height:100px" /><br><br>
    <br><br>
     
    <input type=submit value=Envoyer> &nbsp &nbsp
    		  <input type=reset value=Annuler>
    </form>
    et quand je tape entrée, çà submit alors que je voudrais que çà passe à la ligne.

    Comment faire?

    Merci

    ++
    Memes

  7. #7
    Membre averti
    Inscrit en
    Août 2005
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 43
    Par défaut
    bon, j'ai changé un peu, mon code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <form name="ajoutmessageforum" action="validmessageforum.php" method="POST">
    <!-- bloc de donnée à enregister dans la base -->
    Message : <br> <textarea  name="message"></textarea>
    <br><br>
    <br><br>
    <input type=submit value=Envoyer> &nbsp &nbsp
    		  <input type=reset value=Annuler>
    </form>
    çà passe bien à la ligne dans le formulaire, le message est bien enregistré dans la base SQL, mais après, le message apparait sur une seule ligne, le retour à la ligne est remplacé par un espace. Je pense que c'est au niveau de l'extraction.

    ???

    Merci

    ++
    Memes

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6
    Par défaut
    Là c'est en PHP que ça se passe. Utilise la fonction nl2br() pour remplacer les sauts de lignes par des balises <br />.

  9. #9
    Membre averti
    Inscrit en
    Août 2005
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 43
    Par défaut
    en fait, j'ai utilisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message=ereg_replace(chr(13),'<br>',$message);
    Merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/07/2010, 15h50
  2. Réponses: 6
    Dernier message: 18/12/2006, 15h49
  3. Réponses: 3
    Dernier message: 24/01/2005, 11h57
  4. Execution d'une fonction lors de l'appui sur CTRL+ALT+I
    Par cyberlewis dans le forum Windows
    Réponses: 4
    Dernier message: 17/03/2004, 01h35

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