Antje Hofmann: Hilfe.. bei \n

Beitrag lesen

Hallo Fraction

zuerst, es wäre richtiger gewesen, im Thread diese weiterführende Frage zu stellen.

Ich habe mühsam versucht mir ein Script zu bauen das Zeilenumbrüche in einer Textarea als <br>'s umwandelt:

<script type="text/javascript">
<!--
function Replace() {
var string = "\n";
var jetzt = string.replace(/\n/,"<br>\n");
document.write(jetzt);
}
//-->
</script>

Dazu noch auf dem Submit Button:

<... onSubmit="return Replace();">

ohje ohje, du hast noch weniger Peilung als ich erhofft hatte. Nun ich versuche es zu erklären.

deine Seite könnte so aussehen:

<html>
<head>
<title></title>
</head>
<body>
<form action="deineZielseite.html" method="post" name="formular">
<textarea name="inhalt" cols="20" rows="10"></textarea>
<input type="Submit" name="absenden" value="absenden">
</form>

</body>
</html>

Klickt der Nutzer jetzt auf absenden, so wird das Formular an den Server übertragen.

Du möchtest nun _vor_ der Übertragung im Textarea alle Zeilenumbrüche ersetzen.

Damit dies genau vor dem Absenden des Formulares passiert, wird der Eventhandler onsubmit verwendet, der im form-Tag und nicht im Submitbutton notiert wird.

Dein Formtag könnte jetzt so aussehen:

<form action="deineZielseite.html" method="post" name="formular" onSubmit="return br_ersetzen();">

(Ich habe die Funktion umbenannt, damit man weiß, was sie tut).

function br_ersetzen() {}

In der Funktion brauchst du erstmal den Inhalt des Textareas. Den erhälst du mit document.formular.inhalt.value und speicherst in z.B. auf eine Variable.

Deine Funktion besteht jetzt aus den Zeilen:

function br_ersetzen()
{
 var string=document.formular.inhalt.value;

}

Mit replace ersetzt du den Inhalt im String selbst. Im Unterschied zu deiner Funktion ist jedoch der Inhalt des Textareas in der Variablen string gespeichert.

function br_ersetzen() {
var string=document.formular.inhalt.value;
var jetzt = string.replace(/\n/,"<br>\n");
}

Der Rückgabewert der Methode befindet sich jetzt in der Variablen jetzt.

Allerdings wird nur der erste Umbruch ersetzt. Damit alle ersetzt werden, notierst du hinter dem 2. / ein g.

function br_ersetzen() {
var string=document.formular.inhalt.value;
var jetzt = string.replace(/\n/g,"<br>\n");
}

damit ist die Ersetzung erledigt. Jetzt weiß ich nicht was du genau willst.
Willst du das Formular absenden, dann, mußt du dem Textarea als neuen Wert den Wert von jetzt zuweisen und return true (zum abschicken des Formulares) zurückgeben.

deine Funktion sieht dann so aus:

function br_ersetzen() {
 var string=document.formular.inhalt.value;
 var jetzt = string.replace(/\n/g,"<br>\n");

document.formular.inhalt.value=jetzt;

return true;
}

willst du den Text ins document schreiben (Achtung, wird immer eine neue Seite), dann geht es so und du mußt return false zurückgeben.

function br_ersetzen() {
 text=document.formular.inhalt.value;
 var jetzt = text.replace(/\n/g,"<br>\n");

document.open();
 document.write(jetzt)
 document.close()
 return false;
}

Ich hoffe du siehst jetzt etwas mehr durch, wenn nicht frage einfach.

Viele Grüße

Antje