2009-05-31 15 views
1

Je manipule certaines données dans ms ajax et renvoie une chaîne que j'insère dans une zone de texte en utilisant jQuery.val(). Malheureusement, la zone de texte n'introduit pas non plus
ou \ n, alors comment est-ce que je peux faire en sorte que le texte apparaisse dans la zone de texte pour qu'il soit toujours joli?jQuery textbox et html

Mise à jour (sur demande): J'utilise quelque chose de similaire à ceci:

var sendEmailText = Hi, you found these items<ul><li>Car1</li><li>car2</li></ul><br><br/>Bye!  
jQuery('.CssReceiverMessage').val(sendEmailText); 

Et fondamentalement, il montre juste le code avec les balises HTML, au lieu de l'interpréter.

Répondre

2

On peut supposer que vous essayez d'envoyer un courriel stylés et la zone de texte contiendra le texte du courrier. Je suggère que vous fassiez deux choses - d'abord utiliser un DIV pour afficher le texte à l'utilisateur. Vous pouvez le styler pour qu'il ressemble à une zone/zone de texte si vous voulez avec des bordures, etc. Ensuite, ayez une entrée cachée qui contient réellement les données qui seront renvoyées au serveur. De cette façon, votre affichage fonctionne comme vous le souhaitez, mais les données sont renvoyées intactes pour l'email à envoyer. Vous pouvez également laisser le serveur formater l'e-mail et transmettre les données au format JSON ou à tout autre format pouvant être interprété par le serveur.

var sendEmailText = "Hi, you found these items<ul><li>Car1</li><li>car2</li></ul><br><br/>Bye!"  
jQuery('#receiverMessage').val(sendEmailText); 
jQuery('.receiverDisplay').html(sendEmailText); 

<div style="border: 1px solid #0000ff;" class="receiverDisplay"> 
</div> 
<input type="hidden" id="receiverMessage" name="recevierMessage" /> 

Modifier: Si l'utilisateur doit modifier le message, comme indiqué par vos commentaires à une autre réponse, puis envisager d'utiliser un éditeur de Markdown tels que WMD (utilisé sur le SO).

1

Il est impossible d'utiliser HTML dans une zone de texte (élément <input>)

1

Au lieu d'utiliser une zone de texte utiliser une période ou div. Créer une étendue sur la page.

<span id="ReceiverMessage"></span> 

Puis dans votre code html jQuery défini son() au sendEmailText:

jQuery("#ReceiverMessage").html(sendEmailText); 
+0

Mais j'ai besoin de la zone de texte puisque l'utilisateur devrait être capable d'insérer ses propres commentaires, ce que vous ne pouvez pas faire dans une durée? – Dofs

0

Avez-vous envisagé d'utiliser FCKEditor de TinyMCE? Les deux remplacent une zone de texte standard et vous donnent un éditeur HTML riche.

+0

Je voulais juste un moyen simple pour l'utilisateur de modifier le message. En ce moment je suis déchiré entre laisser l'utilisateur pouvoir éditer le message ou envoyer juste un message standard ... – Dofs

Questions connexes