Question

Je l'édition d'un avec JavaScript <textarea>. Le problème est que quand je fais des sauts de ligne dans, ils ne seront pas affichées. Comment puis-je faire?

Je reçois la valeur d'écrire une fonction, mais il ne donnera pas des sauts de ligne.

Était-ce utile?

La solution

problème vient du fait que les sauts de ligne (\n\r?) Ne sont pas les mêmes que les balises HTML <br/>

var text = document.forms[0].txt.value;
text = text.replace(/\r?\n/g, '<br />');

Autres conseils

si vous utilisez java script général et vous devez attribuer la chaîne de texte valeur de la zone puis

 document.getElementById("textareaid").value='texthere\\\ntexttext'.

vous devez remplacer ou \n à < br > \\\n

sinon il donne sur tous les navigateurs Uncaught SyntaxError: Unexpected token ILLEGAL.

Vous devez utiliser pour \n l'intérieur linebreaks textarea

Peut-être que quelqu'un trouve cela utile:

J'ai eu problème avec les sauts de ligne qui ont été transmis de variable serveur à javascript variable, puis javascript leur a été écrit à textarea (en utilisant les valeurs de knockout.js).

la solution est double échappement de nouvelles lignes:

orginal.Replace("\r\n", "\\r\\n")

sur le côté serveur, car avec un seul caractères d'échappement seulement javascript n'a pas été l'analyse syntaxique.

Une nouvelle ligne est juste des espaces au navigateur et ne sera pas traité différent d'un espace normal ( » « ). Pour obtenir une nouvelle ligne, vous devez insérer des éléments <BR />.

Une autre tentative pour résoudre le problème: Tapez le texte dans la zone de texte, puis ajouter un peu de JavaScript derrière un bouton pour convertir les caractères invisibles à quelque chose lisible et envoie le résultat à un DIV. Cela vous dire ce que votre navigateur veut.

Si vous voulez afficher du texte dans votre page, vous pouvez utiliser la balise <pre>.

document.querySelector('textarea').addEventListener('keyup', function() {
  document.querySelector('pre').innerText = this.value;
});
<textarea placeholder="type text here"></textarea>
<pre>
The
new line will
be respected
</pre>

J'ai un textarea avec id #infoartist suivre:

<textarea id="infoartist" ng-show="dForm" style="width: 100%;" placeholder="Tell your contacts and collectors about yourself."></textarea>

En code javascript, je vais valeur de textarea et remplacer la nouvelle ligne s'échapper (\ n \ r) par tag <br />, tels que:

var text = document.getElementById("infoartist").value;
text = text.replace(/\r?\n/g, '<br />');

Donc, si vous utilisez jquery (comme moi):

var text = $("#infoartist").val();
text = text.replace(/\r?\n/g, '<br />');

Je espère que ça vous a aidé. : -)

Si vous avez juste besoin d'envoyer la valeur du testarea au serveur avec des sauts de ligne, utilisez nl2br

ici est la chose que je l'ai fait pour le même problème que j'avais.

quand je passe le texte à la page suivante jsp, je lis comme un textarea au lieu de lire quelque chose comme

la sortie est venu que vous vouliez. et pour d'autres propriétés, vous pouvez utiliser comme ci-dessous.

<textarea style="background-color: white; border: none; width:660px;font-family: Arial, Helvetica, sans-serif; font-size:1.0em; resize:none;" name="text" cols="75" rows="15" readonly="readonly" ><s:property value="%{text}"/></textarea>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top