Per klick Text in den Bereich einfügen wo cursor ist.
Simon
- javascript
Hi,
hab da ein Kleines Problem. Und zwar:
ich hab z.B. 3 Textarea:
_______________________________________________
| Textarea1 |
------------------------------------------------
_______________________________________________
| Textarea2 |
------------------------------------------------
_______________________________________________
| Textarea3 |
------------------------------------------------
Daneben hab ich eine Liste mit Namen:
Name1
Name2
Name3
Name4
Ich würde jetzt gern per Klick auf einen der Namen diesen Namen in das Textarea einfügen wo ich vorher hineingeklickt habe. Gibt es da irgendeine Möglichkeit. Mit:
onclick="document.getElementById('textarea').value += 'text'"
kann ich zwar einen Text einfügen, aber eben nur in das wo die ID übereinstimmt.
Hab zwar schon etwas länger gesucht nur leider nichts gefunden.
MfG
Simon
Merk dir bei Klick in die Textarea den Namen der Textarea. Dann hast du im Merker immer die letzte stehen und da kommt dann der Text rein.
Komm da irgenwie nicht weiter.
Hab versucht es so zu machen nur passiert da irgenwie garnichts und ich find den Fehler nicht:
Textarea:
<textarea onclick="var textarea ='textarea1';" id="textarea1"></textarea>
Link:
<a href="#" onclick="document.getElementById(textarea).value += 'text';">Name</a>
Ist das komplett falsch oder ist da nur ein kleiner Fehler?
MfG
Simno
Hab versucht es so zu machen nur passiert da irgenwie garnichts und ich find den Fehler nicht:
Dann schau mal in die Fehlerkonsole!
Struppi.
Ja da steht nur:
Warnung: Leerer String an getElementById() übergeben.
Nur weiß ich nicht warum er leer ist.
Hi,
Warnung: Leerer String an getElementById() übergeben.
Nur weiß ich nicht warum er leer ist.
Weil du die Variable, die du als Parameter übergibst, nirgends angelegt hast.
MfG ChrisB
Weil du die Variable, die du als Parameter übergibst, nirgends angelegt hast.
Aber das mach ich doch indem ich hineinklick oder:?
<textarea onclick="var textarea ='textarea1';" id="textarea1"></textarea>
Hi,
Aber das mach ich doch indem ich hineinklick oder:?
<textarea onclick="var textarea ='textarea1';" id="textarea1"></textarea>
Ich bin mir gerade nicht sicher, wie sich die Verwendung des Schlüsselwortes var dort auf den Gültigkeitsbereich der Variablen auswirkt.
MfG ChrisB
Ok,
Kann man das Ganze vielleicht auch anders lösen?
Tach,
Kann man das Ganze vielleicht auch anders lösen?
ja, definiere die Variable an anderer Stelle.
mfg
Woodfighter
ja, definiere die Variable an anderer Stelle.
Was meinst du damit? Mit einer Funktion??
Ich bin da echt am verzweifeln.
Ich hab jetzt glaub ich schon alles ausprobiert:
Wenn ich z.B. die Variable so setze :
<script type="text/javascript">
var textarea = 'textarea1';
<script>
funktioniert es.
Wenn ich es so mache:
<textarea onclick="var textarea = 'textarea1';" id="textarea1"></textarea>
und den Link so:
<a href="#" onclick="document.getElementById(textarea).value += 'text';">Name</a>
funktioniert wieder nicht.
Ich hab mal zum testen so versucht:
<textarea onclick="var textarea = 'textarea1';alert(textarea);" id="textarea1"></textarea>
Hier funktioniert es, dass heißt dass die Variable gesetzt wird weil ich als Ausgabe "textarea1" bekomme.
Ich hab auch schon versucht das ganze mit Funktionen zu machen. Das Problem ist immer das selbe:
Warnung: Leerer String an getElementById() übergeben.
MfG
Simon
Tach,
<script type="text/javascript">
var textarea = 'textarea1';
<script>
so in etwa meinte ich es, aber das var-Schlüsselwort erzeugt eine lokale Variable, du willst aber eine globale, also laß das Schlüsselwort weg.
mfg
Woodfighter
<script type="text/javascript">
var textarea = 'textarea1';
<script>
>
> so in etwa meinte ich es, aber das var-Schlüsselwort erzeugt eine lokale Variable, du willst aber eine globale, also laß das Schlüsselwort weg.
In dem obigen Beispiel ist die Variabel global. Alle Variabeln ausserhalb einer Funktion sind global.
Struppi.
Tach,
In dem obigen Beispiel ist die Variabel global. Alle Variabeln ausserhalb einer Funktion sind global.
äh danke, ich glaube das werde ich mir nie korrekt merken.
mfg
Woodfighter
Ok, hat aber leider nichts geändert. Noch immer das selbe Problem.
Hier mal ein vereinfachter Quelltext von dem Ganzem:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
</head>
<body>
<div>
<a href="#" onclick="document.getElementById(textarea).value += 'text1';return false;">Name1</a><br />
<a href="#" onclick="document.getElementById(textarea).value += 'text1';return false;">Name2</a><br />
<a href="#" onclick="document.getElementById(textarea).value += 'text1';return false;">Name3</a><br />
<a href="#" onclick="document.getElementById(textarea).value += 'text1';return false;">Name4</a><br />
<a href="#" onclick="document.getElementById(textarea).value += 'text1';return false;">Name5</a><br />
</div>
<div>
<textarea onclick="var textarea = 'textarea1';" id="textarea1" name="textarea"></textarea>
<textarea onclick="var textarea = 'textarea2';" id="textarea2" name="textarea"></textarea>
<textarea onclick="var textarea = 'textarea3';" id="textarea3" name="textarea"></textarea>
<textarea onclick="var textarea = 'textarea4';" id="textarea4" name="textarea"></textarea>
<textarea onclick="var textarea = 'textarea5';" id="textarea5" name="textarea"></textarea>
</div>
</body>
</html>
Kann es sein dass wenn der Browser "document.getElementById(textarea)" ließt, die Variable textarea schon definiert sein muss?
Wie schon gesagt, wenn ich oben im <head>
<script type="text/javascript">
var textarea = 'textarea1';
</script>
schreibe funktioniert es für diese ID.
Jetzt funktionierts.
Danke nochmal an alle.
Simon
und den Link so:
<a href="#" onclick="document.getElementById(textarea).value += 'text';">Name</a>
Ich hab auch schon versucht das ganze mit Funktionen zu machen. Das Problem ist immer das selbe:
Warnung: Leerer String an getElementById() übergeben.
Du kannst das ganze auch so schreiben:
<a href="#" onclick="document.getElementById('textarea').value += 'text';return false;">Name</a>
Du willst ja hier eigentlich einen String übergeben (und das retuen false ist notwendig, damit nicht der href-Teil ausgeführt wird).
Struppi.