2009-05-31 20 views
1

Ich manipuliere einige Daten in ms Ajax und gebe eine Zeichenfolge zurück, die ich in ein Textfeld mit jQuery.val() einfügen. Leider stellt das Textfeld weder
noch \ n dar, also wie kann ich den Text so in Textbox rendern lassen, dass er immer noch gut aussieht?jQuery Textbox und html

Update (auf Wunsch): Ich verwende etwas Ähnliches wie folgt aus:

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

Und es ist im Grunde zeigt nur den Code mit den HTML-Tags, anstatt sie zu interpretieren.

Antwort

2

Vermutlich Sie versuchen gestylten E-Mail und Textfeld zu schicken, den Text der E-Mail enthalten. Ich schlage vor, dass Sie zwei Dinge tun - zuerst ein DIV verwenden, um den Text dem Benutzer anzuzeigen. Sie können es so formatieren, dass es wie ein Textfeld/Bereich aussieht, wenn Sie mit Rahmen usw. möchten. Dann haben Sie eine versteckte Eingabe, die tatsächlich die Daten enthält, die zurück an den Server gesendet werden. Auf diese Weise funktioniert Ihre Anzeige wie gewünscht, aber die Daten werden für die zu sendende E-Mail intakt zurückgegeben. Alternativ können Sie den Server die E-Mail formatieren lassen und die Daten als JSON oder ein anderes Format, das vom Server interpretiert werden kann, zurückgeben.

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" /> 

bearbeiten: Wenn der Benutzer die Nachricht bearbeiten muss, wie es um Ihre Kommentare zu einer anderen Antwort angegeben ist, dann sollten Sie einen Abschlags-Editor wie WMD mit (auf SO) verwendet.

1

Es ist nicht möglich, HTML-Code in einem Textfeld zu verwenden (<input> Element)

1

Statt eine TextBox verwenden, um eine Spanne oder div zu verwenden. Erstellen Sie eine Zeitspanne auf der Seite.

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

dann in Ihrem jQuery-Code festgelegt seine html() an die sendEmailText:

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

Aber ich brauche die Textbox, da der Benutzer in der Lage sein sollte, seine eigenen Kommentare einzufügen, die Sie in einer Spanne nicht tun können? – Dofs

0

Haben Sie erwogen, den FCKEditor von TinyMCE zu verwenden? Beide ersetzen ein Standard-Textfeld und geben Ihnen einen umfangreichen HTML-Editor.

+0

Ich wollte nur eine einfache Möglichkeit für den Benutzer, die Nachricht zu bearbeiten. Im Moment bin ich hin und her gerissen zwischen dem Benutzer die Nachricht bearbeiten zu können oder einfach nur eine Standardnachricht zu senden ... – Dofs