# Text in promt eingeben und Fett ausgeben



## Shrek (28. Januar 2004)

Ich möchte über einen Promt einen Text eingeben und diesen später  mit b-Klammern wieder in ein Textfeld ausgeben. 

In meiner Index-Datei steht:

```
<html>

<head>
  <title></title>

</head>

<body OnLoad="start()">

<script type="text/javascript" src="decision.js"></script>

<table border=1>
<tr>
<td>
<a href=# onclick="format(this.form,'b')">Fett</a><br>
<a href=# onclick="format(this.form,'u')">Unterstrichen</a><br>
<a href=# onclick="format(this.form,'i')">kursiv</a><br>
</td>
<td>
<textarea name="text" rows=20 cols=50></textarea>
</td>
</tabel>

</body>

</html>
```

In meiner Javascript Datei steht.

```
function format(form,inhalt)
{
            if(inhalt == 'b')
            {
            	eingabe = prompt("Bitte geben Sie den Text ein der Fett ausgegeben werden soll.","");
                form.text.value += ' [ ' +inhalt+ ' ] ' +eingabe+ ' [/ '+inhalt+ ' ] ';
            }
}
```
Dieses Beispiel ist nur für Fett gedacht. Das Einlesen funktioniert perfekt, nur das Schreiben in die Texarea klappt nicht und ich habe keine Ahnung wieso. Nach meiner Ansicht müsste  bei form.text.value.... der Text in die Textare geschrieben werden. Ich hoffe ihr könnt mir helfen.


----------



## Fabian H (28. Januar 2004)

Versuch`s mal mit:

```
window.document[form]['text'].value +=
```


----------



## Shrek (28. Januar 2004)

Funktioniert leider nicht.


----------



## Sven Mintel (29. Januar 2004)

Das erste Problem ist, dass in deinem Code kein <form> drinnen ist, welches man mit "this.form" ansprechen könnte.....
das andere ist, dass man per "this.form" das übergeordnete Formular nur von Formularelementen aus ansprechen kann... was ein Link nicht ist.
Du kannst also für deinen Funktionsaufruf entweder Buttons verwenden...., da gehts, weil es Formularelemente sind....
oder musst das <textarea> auf andere Weise ansprechen:

```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>test</title>
<script type="text/javascript">
<!--
function format(strPrompt,strTag)
{
objTEXT=document.forms[0].text;
eingabe = prompt("Bitte geben Sie den Text ein der "+strPrompt+" ausgegeben werden soll.","");
  if(eingabe!='')
    {
    objTEXT.value += ' [ ' +strTag+ ' ] ' +eingabe+ ' [/ '+strTag+ ' ] ';
    }
}
-->
</script>
</head>
<body>
	<form>
		<table border="1"summary="Benutzereingabe">
			<tr>
				<td>
					<a href="javascript:format('fett','b')">Fett</a><br>
					<a href="javascript:format('unterstrichen','u')">Unterstrichen</a><br>
					<a href="javascript:format('kursiv','i')">kursiv</a><br>
				</td>
				<td>
					<textarea name="text" rows="20" cols="50"></textarea>
				</td>
			</tr>
		</table>
	</form>
</body>
</html>
```


----------



## Shrek (29. Januar 2004)

Wow, Danke jetzt funktionierts.


----------



## supercat1510 (30. Januar 2005)

Hab zufällig diesen Post entdeckt und find ihn ganz nützlich.

Hätte nur noch ne Frage.
Wie muss man das Script ergänzen, das wenn man auf "Abbrechen" klickt nicht

[ b ]null[/ b ]

erscheint 
(Leerzeichen wegdenken)


----------



## Sven Mintel (30. Januar 2005)

Ersetze in der Funktion *format()* jenes:

```
if(eingabe!='')
```
durch dieses

```
if(eingabe && eingabe!='')
```


----------

