Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2549 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Sauts de lignes Textarea (nl2br fonctionne pas)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Sauts de lignes Textarea (nl2br fonctionne pas)

n°2058706
mickou64
Posté le 22-02-2011 à 12:51:40  profilanswer
 

Bonjour à toutes et à tous,  
 
J'ai un léger soucis,  
 
En gros, j'ai une textarea dans laquelle j'écris un peu ce que je veux, et sur un evenement onblur, j'affiche le texte écrit dans la textarea, dans une div.  
 
Le problème, c'est que j'aimerai garder les sauts de ligne de cee texte écrit, avant de l'afficher.  
 
Du coup, je me suis dit, reprend la fonction nl2br mais convertit la en javascript, mais malheureusement, cela ne fonctionne pas.  
 
 

Code :
  1. var texte = $("#mon_textarea" ).val();
  2. texte = strip_tags(texte);
  3. texte = nl2br(texte);
  4. $("#mon_div" ).html(texte);


 
 
Voici les deux fonctions que j'utilise :  
 

Code :
  1. function strip_tags(chaine, allowed)
  2. {
  3.     allowed = (((allowed || "" ) + "" ).toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join(''); // making sure the allowed arg is a string containing only tags in lowercase (<a><b><c> )
  4.     var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,
  5.         commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi;
  6.     return chaine.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) {        return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';
  7.     });
  8. }
  9. function nl2br(str, is_xhtml)
  10. {
  11.     var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '' : '<br>';
  12.     return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2');
  13. }


 
Si quelqu'un peut m'aider, ca serait génial ! Merci d'avance

mood
Publicité
Posté le 22-02-2011 à 12:51:40  profilanswer
 

n°2058887
cetplus
Wazard dans l'ombre
Posté le 23-02-2011 à 09:01:56  profilanswer
 

Salut.
Mais tu utilises Jquery ... ça change tout !
J'ai un code à te proposer :

 
Code :
  1. <html>
  2. <title>Test</title>
  3. <script language="Javascript">
  4. <!--
  5. function uping(){
  6. var doc=document.getElementById('montexte').value;
  7. while(doc.indexOf("\n" )>0){
  8. doc = doc.replace("\n","<br>" );
  9. }
  10. document.getElementById("result" ).innerHTML = doc;
  11. }
  12. //--->
  13. </script>
  14. <body>
  15. <textarea id="montexte" OnBlur="javascript:uping()"></textarea>
  16. <p>Affichage :
  17. <table cellpadding='0' cellspacing='0' border='1'>
  18. <tr>
  19. <td><center><div id="result"></div></center></td>
  20. </tr>
  21. </table>
  22. </body></html>


Bonne chance !

Message cité 1 fois
Message édité par cetplus le 25-02-2011 à 02:41:09
n°2058932
mickou64
Posté le 23-02-2011 à 10:27:30  profilanswer
 

cetplus a écrit :

Salut.
Mais tu utilises AJAX ... ça change tout !
J'ai un code à te proposer :
 

Code :
  1. <html>
  2. <title>Test</title>
  3. <script language="Javascript">
  4. <!--
  5. function uping(){
  6. var doc=document.getElementById('montexte').value;
  7. while(doc.indexOf("\n" )>0){
  8. doc = doc.replace("\n","<br>" );
  9. }
  10. document.getElementById("result" ).innerHTML = doc;
  11. }
  12. //--->
  13. </script>
  14. <body>
  15. <textarea id="montexte" OnBlur="javascript:uping()"></textarea>
  16. <p>Affichage :
  17. <table cellpadding='0' cellspacing='0' border='1'>
  18. <tr>
  19. <td><center><div id="result"></div></center></td>
  20. </tr>
  21. </table>
  22. </body></html>


Bonne chance !


 
Je te remercie beaucoup pour ton aide, ça marche parfaitement.  
 
En plus, c'était vraiment tout bête ! Encore merci, et bonne journée.
 
Cordialement,
 
MC L.

n°2059497
gatsu35
Blablaté par Harko
Posté le 25-02-2011 à 00:20:44  profilanswer
 

Il n'y a rien d'AJAX la dedans, et en plus utiliser un while sur un replace c'est un peu débile. Il faut utiliser une expression régulière avec "g" comme flag :  
doc = doc.replace(/(\\n|\n)/g,"<br>" );


---------------
Blablaté par Harko
n°2059506
cetplus
Wazard dans l'ombre
Posté le 25-02-2011 à 02:53:09  profilanswer
 

Tu as raison. Mais je n'avais jamais utilisé cette syntaxe.
On en apprends tout les jours.

n°2059543
gatsu35
Blablaté par Harko
Posté le 25-02-2011 à 09:52:31  profilanswer
 

cetplus a écrit :

Tu as raison. Mais je n'avais jamais utilisé cette syntaxe.
On en apprends tout les jours.


Excuse moi mais maintenant tu as remplacé AJAX par Jquery, mais il n'y a rien de Jquery dans ton code


---------------
Blablaté par Harko
n°2060184
cetplus
Wazard dans l'ombre
Posté le 01-03-2011 à 08:27:31  profilanswer
 

Pas dans le miens : $("#mon_div" ).html(texte);

n°2060216
gatsu35
Blablaté par Harko
Posté le 01-03-2011 à 09:41:12  profilanswer
 

oui enfin, mais psa dans le code que tu donnes plus haut :)


---------------
Blablaté par Harko

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Sauts de lignes Textarea (nl2br fonctionne pas)

 

Sujets relatifs
déterminer le nombre de lignes d'un fichier texteAjout de lignes dans une table
[VBS] Supprimer un bloc de lignesXML XSL propriété text indent sur plusieurs lignes...
traduction d'une textareaHeader tout seul qui ne fonctionne pas
Code touche clavier Flèche aut - Repérage lignes visibles non filtrée[VBA]Supprimer les lignes identiques rapidement...
Tri_fusion en C qui ne fonctionne pasonmouseover ne fonctionne pas
Plus de sujets relatifs à : Sauts de lignes Textarea (nl2br fonctionne pas)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR