Je sais que ma question est très similaire à celle-ci: jQuery text() function loses line breaks in IE, mais mes besoins sont légèrement différents.Comment préserver les sauts de ligne dans une zone de texte dans jQuery?
J'ai une zone de texte sur ma page qui a une chaîne de texte «modèle» à entrer par l'utilisateur. (Il leur permet d'écrire un message, en utilisant% NAME% comme espace réservé pour le nom.)
Une fois que l'utilisateur a terminé le "modèle", je l'ai placé dans une seconde zone de texte qui remplace en fait% NAME% avec un nom quelconque Devrait être utilisé. J'ai cette partie de la fonction couverte, et ça fonctionne parfaitement.
La deuxième partie fonctionne très bien dans la plupart des navigateurs.
Toutefois, dans Internet Explorer, les sauts de ligne de la première zone de texte ne sont pas conservés dans la seconde. Ainsi, par exemple, si l'utilisateur est entré dans la première case:
Hi %NAME%,
How are you?
Et le nom de remplacer le texte était « Zak », la seconde zone apparaîtront comme:
Hi Zak,How are you?
Mon code pour obtenir le texte dans la deuxième zone est:
var inviteTemplate=$('#invitationTemplate').text();
inviteTemplate=inviteTemplate.replace(/%NAME%/g,name);
$('#invitationText').html(inviteTemplate);
Je suppose que le problème est à l'utilisation .text()
pour obtenir le contenu du textarea. Y a-t-il un moyen de faire en sorte que IE conserve les sauts de ligne dans la deuxième zone de texte?
essayez d'utiliser .html() ou .val() –
Si ce sont des zones de texte, alors ne devriez-vous pas utiliser val() et non text() ou html()? –
@Sime: oh désolé. Je voulais dire textarea! – Zak