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 :

Bloquer le retour à la ligne dans un textearea


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Par défaut Bloquer le retour à la ligne dans un textearea
    Bonjour ou plutôt bonne nuit

    comment puis je faire pour bloquer le retour chariot dans mon textarea les formules trouvées sur le net non pas fonctionnées

    voici le code

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php if (!empty($_POST['texte'])) {
    file_put_contents( 'message.txt', $_POST['texte'] );
    }
    ?>
    </head>

    j'ai reduit la saisie à 8 caractères mais maintenant il me faut pas de retour chariot

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form action="" method="post">
    <textarea name="texte"COLS=1 ROWS=0 maxlength=8><?php echo file_get_contents( '' ); ?></textarea><br/>
    <input type="submit" value="Ecrire" />
    </form>

    Merci beaucoup

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

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    Facile ! Tu surveilles les keypress sur ton champ de texte, tu examines event.keyCode et si c'est 13 tu annules l'évènement avec preventDefault.

    Un textarea d'une seule ligne ? Tu as peut-être intérêt à utiliser <input type="text"> à la place.

    Attention tu as une faille de sécurité dans ton code PHP : il ne faut pas stocker telles quelles les données provenant du client.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Par défaut
    Merci Watilin,

    Pour les failles de sécurité il faut que j'étudie cela car*je dois te l'avouer je ne connais pas bien tout ça..... Je fais ce site pour une association apriori c'est "des gens bien " mais bon ! :=)

  4. #4
    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 659
    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 659
    Billets dans le blog
    1
    Par défaut
    un textarea a une seule ligne ... c'est un input type text ...
    Quel interet de vouloir bloquer un textarea à une seule ligne ?
    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 !

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Par défaut
    Voux avez parfaitement raison. Voici donc une input qui fonctionne reste un problème il me place un caractère invisible dans le fichier texte qui foire ma carte google map j'ai encodé en utf8 sans BOM


    Code php : 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
    30
    31
    32
    33
    34
    35
    36
    37
    <? 
     
    $menu=isset($_POST['menu'])?$_POST['menu']:""; 
    $latitude=isset($_POST['latitude'])?$_POST['latitude']:""; 
    $longitude=isset($_POST['longitude'])?$_POST['longitude']:""; 
     
    // Action à effectuer: 
    if ($menu<>""){ 
    // Enregistre dans le fichier message.txt: 
    $msg= x.$latitude. x .$longitude." ".""; 
     
    if(strstr($msg, 'x')) 
    $msg = str_replace('x', ' ', $msg); 
     
    $handle = fopen("message.txt", "w"); 
    fputs ($handle, $msg.chr(13).chr(10)); 
    aff_fin(); 
    }else{ 
    aff_formulaire(); 
    } 
     
     
    function aff_formulaire(){ 
    echo '<form name="form1" method="POST">'; 
    echo 'Fréquence  : <input type=text name="latitude"><br><input type=hidden name="menu"><input type=submit value="Envoyer" onclick="document.form1.menu.value=\'Envoyer\';"></form>'; 
     
    } 
     
    function aff_fin(){ 
     
     
    echo "<A href='time.php' target='_blank'>Confirmer le statut?. <A>";
     
     
    } 
     
    ?>

    Cordialement

  6. #6
    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 659
    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 659
    Billets dans le blog
    1
    Par défaut
    Sans doute un souci au niveau de ta page support du form
    Une petite feuille de route poru l'utf8 par notre ami Cahnory http://cahnory.tumblr.com/post/17108...ment-ca-marche
    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 !

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Par défaut
    C'est ici que viens le problème cela me créer des espace ( signe invisible)
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    fputs ($handle, $msg.chr(13).chr(10));

  8. #8
    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 659
    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 659
    Billets dans le blog
    1
    Par défaut
    Ce n'est pas un souci js mais plutot coté serveur ...

    le fichier qui contient ton fputs il est en utf8 ?
    ton serveur délivre de l'utf8 ?
    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 !

  9. #9
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Par défaut
    J 'ai encoder en utf-8 le fichier php ou se trouve le formulaire pour le serveur je pense que oui pas eu de problème avant avec utf-8

    Il est a noter que je n'ai pas se problème avec le TExtaera voir plus haut avec lui j 'ai un soucis de retour à la ligne


    voici le code source de la page ou il y a l 'erreur ( c'est une carte google map)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
     
    // création d'une infobulle et affichage
      var oInfo = new google.maps.InfoWindow({
      'content' : '<a href="https://twitter.com/RK"><FONT COLOR="red" ><small><span style="font-weight: bold;">DIDIER</span></FONT></small></a><br><small><small> test [ <-------------- c'est la que je recup le fichier txt su formulaire et c'est la que j 'ai des espaces et un retour a la ligne ]
     
     
     
    </small></small>', // contenu qui sera affiché  
      'map' : map,                                           // carte sur laquelle est affichée l'InfoWindow    
      'position' : new google.maps.LatLng(47.3589041,1.7573178999999999)       // position d'affichage de l'InfoWindow
     });

  10. #10
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Par défaut
    Re moi

    Finalement j 'ai adapter comme cela ok pour IE mais pas firefox .........une idée

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <?php if (!empty($_POST['texte'])) {
    file_put_contents( 'message.txt', $_POST['texte'] );
    }
     
    ?>
     
     
    </head>
     
     
    <script language="JavaScript">
     function process_keypress() {
     if (window.event.type == "keypress" & window.event.keyCode == 13)
     alert("RETOUR LIGNE HS | 8 CARACTERES MAX");
    return !(window.event.type == "keypress" & window.event.keyCode == 13);
     }
     document.onkeypress = process_keypress;
     </script>
     
     
     
    <form action="" method="post">
    <textarea name="texte"COLS=1 ROWS=0 maxlength=8><?php echo file_get_contents( '' ); ?></textarea><br/>
    <input type="submit" value="Ecrire" />
    </form>
     
     
     
     
     
     
    <body style="direction: ltr;">
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <div style="text-align: center;"><big><big><span style="font-weight: bold;">[&nbsp; <a style="color: rgb(51, 51, 51);" href="http://www.mlflf.fr">Acc&eacute;der &agrave; la Carte</a>&nbsp; ]</span></big></big></div>
    <br>
    <br>
     
    </body>
    </html>

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

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    chr(13).chr(10) c'est "\r\n", autrement dit CRLF (Carriage Return and Line Feed). ça fait partie de l'ASCII 7 bits de base donc peu importe l'encodage (utf-8 ou autre).

    C'est précisément ces sauts de ligne qui se retrouvent dans ton JavaScript et qui te posent problème. S'ils t'ennuient tu peux utiliser trim, ou bien simplement retirer la partie .chr(13).chr(10) de ton code PHP.

    Les <big><big><span> et autres <br> à répétition, c'est des maladresses de mise en page. Utilise du CSS à la place, ça rendra ton code plus clair et ton thème plus facile à faire évoluer.

    Pour le keypress, je ne sais pas où tu as trouvé tes infos mais elles ne sont pas fraîches. la méthode addEventListener est universelle à partir d'IE9.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="texte" value="" type="text" id="texte" size="8" maxlength="8" />
    Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    document.getElementById('texte').addEventListener('keypress', function(event) {
      if (event.keyCode === 13) {
        event.preventDefault();
      }
    });
    Tu as remarqué ? Le keyCode de la touche Entrée c'est 13. Comme dans chr(13). Il s'agit donc du "\r". C'est curieux comme tous les navigateurs sont d'accord pour insérer des "\n" quand on appuie sur Entrée, et dire en même temps que le code de cette même touche correspond à "\r"
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  12. #12
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Par défaut
    bonsoir et merci de ta façon trés pédagogique d'expliquer les choses

    Ce code js il doit faire quoi exactement ? testé comme ca cela n 'empêche pas le RETOUR Chario


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    document.getElementById('texte').addEventListener('keypress', function(event) {
      if (event.keyCode === 13) {
        event.preventDefault();
      }
    });

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

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    Citation Envoyé par loribac
    Ce code js il doit faire quoi exactement ?
    Il fait exactement ce que j'ai écrit plus haut :
    Citation Envoyé par Watilin
    Facile ! Tu surveilles les keypress sur ton champ de texte, tu examines event.keyCode et si c'est 13 tu annules l'évènement avec preventDefault.
    Il faut insérer le script au bon endroit : après l'input. Ou alors utiliser l'évènement DOMContentLoaded (ou à la rigueur load tout court). Je te montrerai comment faire si tu veux, c'est pas compliqué.

    As-tu un message d'erreur dans ta console (F12) ?
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  14. #14
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Par défaut
    Merci encore mais je suis désolé je n y arrive pas .... pourtant tu es patient

    Pas de messsage d erreur console


    j 'ai tester ceci pour sup les \n et \r puis le code et en php MAIS NEGATIF


    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    <? 
     
    $menu=isset($_POST['menu'])?$_POST['menu']:""; 
    $latitude=isset($_POST['latitude'])?$_POST['latitude']:""; 
    //$longitude=isset($_POST['longitude'])?$_POST['longitude']:""; 
     
    // Action à effectuer: 
    if ($menu<>""){ 
    // Enregistre dans le fichier message.txt: 
    $msg= x.$latitude. x .$longitude."".""; 
     
     
    if(strstr($msg, 'x')) 
    $msg = str_replace('x', '', $msg); 
     
     
     
     
    if(strstr($msg, '\n')) 
    $msg = str_replace('\n', '', $msg);
     
     
     
    if(strstr($msg, '\r')) 
    $msg = str_replace('\r', '', $msg);
     
     
     
     
     
     
     
    $handle = fopen("message.txt", "w"); 
     
    fputs ($handle, $msg.chr(13).chr(10)); 
    aff_fin(); 
    }else{ 
    aff_formulaire(); 
    } 
     
    function aff_formulaire(){ 
    echo '<form name="form1" method="POST">'; 
     
     
    echo 'Fréquence  : <input type=text name="latitude"size="8" maxlength="8"><br><input type=hidden name="menu"><input type=submit value="Envoyer" onclick="document.form1.menu.value=\'Envoyer\';"></form>'; 
     
     
     
     
     
    } 
     
    function aff_fin(){ 
     
     
    echo "<A href='time.php' target='_blank'>Confirmer le statut?. <A>";
     
     
    } 
     
     
     
    ?>

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

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    Attention au choix des guillemets : les séquences spéciales ne sont pas interprétées entre des guillemets simples.

    Attention aussi à ta « chaîne » x qui est en réalité une constante. L'interpréteur émet une E_NOTICE dans ce genre de cas. Si ton niveau d'error_reporting n'est pas suffisant, tu rates ces informations qui sont pourtant préciseuses.

    Autre chose, tu n'as pas besoin de faire les tests strstr : str_replace est assez intelligente pour ne rien faire quand il n'y a rien à faire D'ailleurs si tu as juste besoin de savoir si une sous-chaîne est présente, utilise plutôt strpos.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  16. #16
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 320
    Par défaut
    Voila c'est bon Merci à tous

    Le code complet

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
     
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Untitled Document</title>
    </head>
    <body>
     
     
    <form id="form1" name="form1" method="post" action='dem.php' enctype='multipart/form-data'>  
    <label><br />
    <br />
    <input type=text name="text"size="8" maxlength="8">
      </label>
      <p>
        <label>
        <input type="submit" name="VALIDER" value="Submit" />
        </label>
      </p>
      <p>&nbsp;</p>
    </form>
     
     
     
     
    <?php
    // recuperation du nom du fichier
    $contenu = stripslashes(nl2br(htmlentities($_POST['text'])));
    //Ouverture du répertoire de destination
    $fichierouvert = fopen ("message.txt", "w+");
    //Copie du fichier
    if ( !fwrite($fichierouvert, $contenu)) {
      echo "Impossible d'écrire dans le fichier ($filename)";
      exit;
    }
    //Fermeture du fichier
    fclose ($fichierouvert);
    echo "Merci on as enregistrer le message <br>";
    echo "$contenu";
    ?>
     
     
     
     
    </body>
    </html>

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

Discussions similaires

  1. [Swing]Retour à la ligne dans un JTextArea
    Par Nasky dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 09/03/2006, 20h02
  2. [C#] Retour à la ligne dans un textbox
    Par Oberown dans le forum Windows Forms
    Réponses: 8
    Dernier message: 26/07/2005, 09h46
  3. [C#] Retour à la ligne dans un TextBox MultLine
    Par Oberown dans le forum ASP.NET
    Réponses: 3
    Dernier message: 06/07/2005, 11h39
  4. retoure à la ligne dans un fichier
    Par adilou1981 dans le forum Langage
    Réponses: 4
    Dernier message: 02/12/2004, 15h05
  5. [MFC] Retour à la ligne dans un CEdit
    Par Kant dans le forum MFC
    Réponses: 7
    Dernier message: 18/02/2004, 08h58

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