Hallo zusammen,
Ich habe mir ein formular gebastelt zum befüllen meiner Datenbank, für englischen und deutschen Text (jeweils eine Textarea)
nun habe ich ein paar Textbausteine die ich immer mal wieder einfügen möchte und zwar an der Stelle wo der curser sich gerade in der aktiven Textbox befindet.
Ich habe mir bereits die ein oder andere Lösung ergoogelt, jedoch muss in der Funktion der Name der Textbox (und bei allen Lösungen wird es nur mit EINER Textbox gemacht) eingegeben werden.
nun habe ich eine Variante bei der ich zwar die jeweils aktive Textbox ansteuer, allerdings weiss ich nicht wie ich hier weiter komme das der Textbaustein an der Curserposition eingefügt wird. kommt immer ans Ende.
die Textbox sieht dann wie folgt aus:
nun habe ich relativ wenig Ahnung von Javascript weshalb es mir schwer bis sehr schwer fällt diese funktion umzuschreiben oder zu ergänzen mit einem Code der mir dann die entsprechende Curserposition ermittelt und dort den Text einfügt (wo sich recht schnell funktionierende scripts ergooglen lassen, welche sich aber immer alle auf eine festgelegte Textarea beziehen. z.B.
wer könnte mir dabei behilflich sein ggf hinweis geben was ich wie abändern muss damit ich ein button (der einzfügende Text soll dabei auf dem Button hinterlegt sein, da ich für verschiedene Textbausteine verschiedene buttons habe) damit aber in beliebiger Textbox an aktivier Curserposition diesen Textbaustein einfügen kann?!
Ich habe mir ein formular gebastelt zum befüllen meiner Datenbank, für englischen und deutschen Text (jeweils eine Textarea)
nun habe ich ein paar Textbausteine die ich immer mal wieder einfügen möchte und zwar an der Stelle wo der curser sich gerade in der aktiven Textbox befindet.
Ich habe mir bereits die ein oder andere Lösung ergoogelt, jedoch muss in der Funktion der Name der Textbox (und bei allen Lösungen wird es nur mit EINER Textbox gemacht) eingegeben werden.
nun habe ich eine Variante bei der ich zwar die jeweils aktive Textbox ansteuer, allerdings weiss ich nicht wie ich hier weiter komme das der Textbaustein an der Curserposition eingefügt wird. kommt immer ans Ende.
HTML:
var ta;
function einfuegen(){
document.getElementsByName(ta)[0].value += '01TextbausteinXYZ';
}
var br;
function einfuegen_br(){
document.getElementsByName(ta)[0].value += '02TextbausteinABC';
}
die Textbox sieht dann wie folgt aus:
HTML:
<textarea id="beschreibung_de" name="beschreibung_de" class="message" cols="100" rows="10" onFocus="ta=this.name" onClick="ta=this.name"></textarea>
nun habe ich relativ wenig Ahnung von Javascript weshalb es mir schwer bis sehr schwer fällt diese funktion umzuschreiben oder zu ergänzen mit einem Code der mir dann die entsprechende Curserposition ermittelt und dort den Text einfügt (wo sich recht schnell funktionierende scripts ergooglen lassen, welche sich aber immer alle auf eine festgelegte Textarea beziehen. z.B.
HTML:
<script type="text/javascript">
<!--
function insert(aTag, eTag) {
var input = document.forms['formular'].elements['eingabe'];
input.focus();
/* für Internet Explorer */
if(typeof document.selection != 'undefined') {
/* Einfügen des Formatierungscodes */
var range = document.selection.createRange();
var insText = range.text;
range.text = aTag + insText + eTag;
/* Anpassen der Cursorposition */
range = document.selection.createRange();
if (insText.length == 0) {
range.move('character', -eTag.length);
} else {
range.moveStart('character', aTag.length + insText.length + eTag.length);
}
range.select();
}
/* für neuere auf Gecko basierende Browser */
else if(typeof input.selectionStart != 'undefined')
{
/* Einfügen des Formatierungscodes */
var start = input.selectionStart;
var end = input.selectionEnd;
var insText = input.value.substring(start, end);
input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
/* Anpassen der Cursorposition */
var pos;
if (insText.length == 0) {
pos = start + aTag.length;
} else {
pos = start + aTag.length + insText.length + eTag.length;
}
input.selectionStart = pos;
input.selectionEnd = pos;
}
/* für die übrigen Browser */
else
{
/* Abfrage der Einfügeposition */
var pos;
var re = new RegExp('^[0-9]{0,3}$');
while(!re.test(pos)) {
pos = prompt("Einfügen an Position (0.." + input.value.length + "):", "0");
}
if(pos > input.value.length) {
pos = input.value.length;
}
/* Einfügen des Formatierungscodes */
var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
}
}
//-->
</script>
</head>
<body>
<h1>Demo: Einfügen von Inhalten in eine Textarea</h1>
<p>Positionieren Sie einfach den Cursor innerhalb der textarea oder markieren Sie Text darin.
Wählen Sie dann "Einfügen", um <code>[link]...[/link]</code> an dieser Stelle
einfügen zu lassen, sofern es der Browser ermöglicht.</p>
<form name="formular" action="">
<p><textarea name="eingabe" cols="30" rows="10">Ihre Nachricht</textarea></p>
<p><input type="button" value="Einfügen" onClick="insert('[link]', '[/link]')"></p>
</form>
</body>
</html>
wer könnte mir dabei behilflich sein ggf hinweis geben was ich wie abändern muss damit ich ein button (der einzfügende Text soll dabei auf dem Button hinterlegt sein, da ich für verschiedene Textbausteine verschiedene buttons habe) damit aber in beliebiger Textbox an aktivier Curserposition diesen Textbaustein einfügen kann?!
Zuletzt bearbeitet von einem Moderator: