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 :

Envoyer un formulaire textarea


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Juin 2014
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 63
    Points : 33
    Points
    33
    Par défaut Envoyer un formulaire textarea
    Bonjour,

    J'ai un textarea (id = message), dans un formulaire (id = form).

    Je veux envoyer le formulaire lorsque j'appuie sur la touche entré, et non allez à la ligne. Par contre, si le textarea ne contient rien (l'utilisateur n'a pas écrit de texte), il n'envoie rien.

    J'ai fais ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var text = document.getElementById('message');
    text.addEventListener('keydown', function(e) {
    if(e.keyCode == 13 && text.value != '')
        $('#form').submit();
    });
    Donc lorsque j'appuie sur la touche entrée, ca envoie bien le texte, sauf qu'après, dans le textarea, j'ai la touche entré qui s'est marqué. Donc j'ai une nouvelle ligne après que le formulaire ait été envoyé.

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Un formulaire ne doit être soumis que si l'utilisateur clique sur le bouton de soumission. Toute autre solution déroutera l'utilisateur.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Daniel a raison, il n’est pas bon de détourner le comportement des éléments d’interface auxquels les utilisateurs sont habitués. C’est le principe de moindre surprise.

    Les <textarea> sont prévus pour écrire du texte multiligne. Si tu ne veux pas permettre les sauts de ligne, utilise simplement un <input type="text">. Avec cet élément, l’appui sur entrée entraînera naturellement la soumission du formulaire.

    Pour t’aider sur ton code si tu décides de ne pas tenir compte de nos recommandations (et c’est ton droit), voici quelques conseils :

    Le comportement attendu d’un champ de texte, que ce soit <input> ou <textarea>, est, lorsque l’utilisateur frappe majuscule+entrée, de toujours saisir un saut de ligne, jamais envoyer le formulaire. Si tu veux que ton script respecte ça, tu dois aussi tester la valeur de e.shiftKey dans ta fonction.

    Il y a deux sortes d’évènements clavier : ceux qui correspondent à une commande (touches ctrl, maj, les flèches, etc.), et ceux qui correspondent à un caractère. En gros,
    • toutes les frappes au clavier envoient des keyup et keydown,
    • mais seules celles qui entraînent la saisie d’un caractère génèrent des keypress.

    La touche entrée est à cheval entre les deux mondes car elle correspond à la fois à une commande (« envoyer le formulaire ») et à un caractère (saut de ligne).

    Si tu veux empêcher la soumission du formulaire, tu dois annuler l’évènement keyup ou keydown grâce à la méthode e.preventDefault().

    En revanche, pour empêcher qu’un saut de ligne soit effectivement inséré avec la touche entrée, annule l’évènement keypress.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

Discussions similaires

  1. [HTML] Envoyer données formulaire automatiquement ??
    Par Aspic dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 19/03/2006, 19h41
  2. Récupération d'ne liste envoyé par formulaire
    Par Leviathan_72 dans le forum Langage
    Réponses: 5
    Dernier message: 24/11/2005, 09h36
  3. envoyer un formulaire sur un évènement onchange.
    Par maniaco_jazz dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/11/2005, 14h44
  4. Impossible d'envoyer un formulaire avec javascript
    Par Mimi Bulles dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 14/11/2005, 20h37
  5. Réponses: 2
    Dernier message: 30/11/2004, 02h36

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