<script type="text/javascript">
function MakeText(FeldName,NText){
var target = FeldName;
var targetText = target.value;
target.value = targetText + ' ' + NText;
}
</script>
>
> transferText('document.work.name1','Hallo');
> aber die Zeile
> var target = FeldName;
> spricht nicht das entsprechende Feld an.
Überlege doch nochmal: Welche Datentypen übergibst du deiner Funktion bei transferText('document.work.name1', 'Hallo')? Das zweite Argument, 'Hallo', ist ein Text (String), erkennbar an den Anführungszeichen.
Welchen Typ hat das erste Argument? Es steht ebenfalls in Anführungszeichen - also auch ein Text.
In der Variablen target steht also nach
> var target = FeldName;
der Text 'document.work.name1' und in
> target.value = targetText + ' ' + NText;
weisst du dann der Eigenschaft target dieses Textes einen Wert zu. Das <input>-Element hast du überhaupt nicht zu fassen.
> Habe auch schon folgende kombination versucht:
>
> transferText('name2','Hallo2');
> mit
> var target = document.work.FeldName;
Schon besser. Du übergibst als erstes Argument statt einer (vermeintlichen) Javascript-Notation nur den Namen des <input>-Elementes.
Desweiteren greifst statt auf einen Text auf das Objekt document zu, darin auf work, das Formular. Dummerweise nimmst du dann in work den Eintrag namens FeldName - du möchtest aber jenen Eintrag haben, dessen Name \_in\_ der Variablen FeldName steht.
Kurzum:
function MakeText(FeldName,NText){
var target = document.work.elements[FeldName]; // !!!
var targetText = target.value;
target.value = targetText + ' ' + NText;
}
Siehe <http://de.selfhtml.org/javascript/objekte/elements.htm#allgemeines>, Beispiel 4.
Davon gänzlich unabhängig:
Du kannst es dir auch noch einfacher machen: Die Funktion, die beim onclick-Ereignis ausgeführt wird, bekommt automatisch eine Variable namens this, die auf das auslösende Element verweist. Benutze
onclick="transferText('Hallo2');"
mit
function MakeText(NText){
this.value = this.value + ' ' + NText;
}