26 Stimmen

Zeilenumbrüche in Textarea-Elementen

Dies ist PURE HTML. (kein php oder ähnliches, wenn Sie den Hintergrund wissen wollen, ist es eine C#-Anwendung mit HTML in einer Webansicht).

Alle meine HTML-Dateien sind schön formatiert und aus Gründen der Wartungsfreundlichkeit und so weiter korrekt eingerückt.

Hier ist ein Auszug:

<tr>
    <td class="label">Clinic Times:</td>
    <td><textarea name="familyPlanningClinicSessionsClinicTimes">Monday:
    Tuesday:
    Wednesday:
    Thursday:
    Friday:
    Saturday:
    Sunday:</textarea></td>
</tr>

Die Zeilenumbrüche in der <textarea></textarea> Element sind dazu da, die Zeilenumbrüche auf der Seite zu erhalten. Es enthält jedoch auch die Einrückung im Textarea-Element.

z.B..

example

Die einzige Möglichkeit, dieses Problem zu beheben, besteht darin, die Einrückung zu entfernen. Es ist nicht das Ende der Welt, aber gibt es einen anderen Weg, um die schöne Formatierung zu behalten? Danke!

66voto

Marcx Punkte 6676

Sie könnten die &#10; (es bedeutet neue Zeile in html), aber vielleicht ist das keine schöne Formatierung, wie Sie sagten...

Der einzige Weg, den ich mir vorstellen kann, um dieses Problem zu beheben, ist die Entfernung der Einrückung. Es ist nicht das Ende der Welt, aber gibt es einen anderen Weg, um die schöne Formatierung zu behalten?

<tr>
  <td class="label">Clinic Times:</td>
  <td><textarea name="familyPlanningClinicSessionsClinicTimes">Monday:&#10;Tuesday:&#10;Wednesday:&#10;Thursday:&#10;Friday:&#10;Saturday:&#10;Sunday:</textarea></td>
</tr>

7voto

derekerdmann Punkte 17088

Es gibt keine reine HTML-Lösung für Ihr Problem. Textareas zeigen immer alle Leerzeichen in ihrem Inhalt an.

In einer perfekten Welt könnten Sie die CSS-Eigenschaft white-space Leider wird sie auch nicht auf Textareas angewendet.

1voto

Sie können verwenden <div> mit contenteditable Attribut:

<div contenteditable="true" style="width: 450px; height: 300px; white-space: pre-line;" name="familyPlanningClinicSessionsClinicTimes">Monday:
                            Tuesday:
                            Wednesday:
                            Thursday:
                            Friday:
                            Saturday:
                            Sunday:</div>

Aber in Ihrem Fall denke ich, dass die beste Lösung darin besteht, mehrere gewöhnliche Textfelder zu verwenden, eines für jeden Tag:

Monday: <input type="text" name="familyPlanningClinicSessionsClinicTimesMonday" /><br />
Tuesday: <input type="text" name="familyPlanningClinicSessionsClinicTimesTuesday" /><br />
...

0voto

Dave Newton Punkte 156303

Nein, eine Textarea spuckt das zurück, was sie tatsächlich hat.

Sie könnten den Wert aus JavaScript einfügen, aber das scheint eine Menge Arbeit für eine isolierte Sache zu sein.

0voto

VinnyG Punkte 6803

Wenn Sie in C# eine neue Zeile an ein Textfeld senden möchten, können Sie Environment.NewLine verwenden

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X