web-dev-qa-db-fra.com

Nouvelle ligne dans Textarea à convertir en <br/>

Il y a beaucoup de discussions ici sur la conversion de br /> ou la préservation des nouvelles lignes dans différentes langues, mais pas beaucoup sur la zone de texte.

J'ai ce script:

var boxText = "";
$("textarea.BoxText").live('dblclick', function () {
    boxText = $(this).val().replace(/ /g, "<br/>");
  $(this).replaceWith( '<div class="BoxText">' + $(this).val() + '</div>' );

});
$("div.BoxText").live('dblclick', function () {
  $(this).replaceWith( '<textarea form="HTML" class="BoxText">' + boxText + '</textarea>' );
});

J'ai un élément textarea, modifiable. Lorsque l'utilisateur double-clique dessus, il se transforme en div. Cependant, dans une div, les sauts de ligne ne sont pas conservés. J'aimerais convertir uniquement les nouvelles lignes en
, actuellement, tous les espaces sont en cours de conversion. J'ai un deuxième script qui le reconvertit en zone de texte, d'où la variable pour stocker la chaîne. J'aurais besoin du
doit également être reconverti en nouvelles lignes.

Cela peut sembler redondant, mais j'ai une bonne raison à cela.

28
C_K

Cela remplacera les sauts de ligne par des balises de rupture HTML. Les différentes combinaisons doivent couvrir les différents navigateurs/systèmes et la façon dont les sauts de ligne sont interprétés.

 $ (this) .val (). replace (/\r\n |\r |\n/g, "<br />") 

Cela le ramènera à de nouvelles lignes - couvrant également la façon dont différents navigateurs interprètent innerHTML.

 boxText.replace (/ <br\s?\/?>/g, "\ n"); 
81
Neil