Seite 1 von 1

javascript -> Var an Funktion -> Ausgabe

Verfasst: 28.05.2009, 09:14
von xoni
Ein freundliches Hallo an alle,

ich bin kein Freund von javascript, hier mein Problem:
Eine Zahl wird an eine Funktion übergeben. Diese Zahl
lässt sich per alert anzeigen, alles wunderbar. Nun möchte ich
mit dieser Zahl ein Inputfeld ansprechen, aber es funktioniert nicht.
Ich habe mal exemplarisch ein einfaches Beispiel erstellt, um das
Problem zu verdeutlichen. Die Auskommentierten Ansätze funktionieren alle nicht.
Kann mir bitte jemand die richtige Syntax erklären?

Vielen Dank...

Code: Alles auswählen

<html><head>
<script type="text/javascript">

function Aktualisieren &#40;zahl&#41; &#123;
	var zahl = zahl;

        // geht
        document.Test1.Eingabe.value = zahl; 

        // dieses geht nicht
        //document.Test&#40;'zahl'&#41;.Eingabe.value = zahl;
        //document.Test'zahl'.Eingabe.value = zahl;
        //document.Test + zahl.Eingabe.value = zahl;
        //document.Test"zahl".Eingabe.value = zahl;
        //document.Test&#40;"zahl"&#41;.Eingabe.value = zahl;
        //document.Test + &#40;'zahl'&#41; + .Eingabe.value = zahl;
        //document.&#40;Test+zahl&#41;.Eingabe.value = zahl;
        //document.Test&#40;zahl&#41;.Eingabe.value = zahl;


	return true;
&#125;
</script>
</head>
<body>
<form name="Test1" action="#">
<input type="text" name="Eingabe">
<input type="submit" value="Abschicken" onclick="Aktualisieren&#40;1&#41;" />
<input type="reset" value="Zurücksetzen" />
</form>
</body></html>

Verfasst:
von

Re: javascript -> Var an Funktion -> Ausgabe

Verfasst: 28.05.2009, 13:45
von Mork vom Ork
wollbay hat geschrieben:// geht
document.Test1.Eingabe.value = zahl;
Du möchtest also auf das Formular namens Test1 zugreifen, genauer gesagt, auf das Formular, dessen Name aus "Test" und der übergebenen Zahl besteht?

Dann musst du zuerst den Namen zusammensetzen, und zwar aus dem Text "Test" und dem Inhalt der Variablen zahl:

"Test" + zahl

Anschließend musst du einen Weg finden, auf Formulare anders als mit Elementname direkt im Code zuzugreifen. Formulare sind praktischerweise im document-Element im Feld forms abgelegt. Ergo:

document.forms["Test" + zahl].Eingabe.value = zahl;

Deine anderen Versuche schlugen fehl, da &#8230;

//document.Test('zahl').Eingabe.value = zahl;
//document.Test("zahl").Eingabe.value = zahl;

Damit greifst du auf eine Funktion (!) Test() zu, die sich im document-Element befinden soll. Der Funktion übergibst du den Text "zahl" statt der Variablen zahl.

//document.Test(zahl).Eingabe.value = zahl;

Schon eher, hier hast du immerhin richtigerweise die Variable zahl am Wickel. Trotzdem gibt es keine Funktion Test() in document.

//document.Test'zahl'.Eingabe.value = zahl;
//document.Test"zahl".Eingabe.value = zahl;

So, ohne Verbindungselement, kannst du zwei Sachen nicht zusammensetzen.

//document.Test + zahl.Eingabe.value = zahl;

Damit addierst du den Inhalt des Elements document.Test (geht nicht, da ein HTML-Objekt) mit dem Inhalt der Eigenschaft Eingabe.value der Variablen zahl.
Anders ausgedrückt: a + b ist in der Mathematik auch nicht ab, sondern c.

//document.Test + ('zahl') + .Eingabe.value = zahl;

Addition von document.Test mit dem Text zahl und einem nicht genannten Element.

//document.(Test+zahl).Eingabe.value = zahl;

Was da rauskommt, vermag ich nicht zu erraten.

Verfasst: 29.05.2009, 08:51
von xoni
Guten Morgen Mork vom Ork,

vielen Dank für Deine sehr ausführliche Dokumentation;
Deine Erklärungen verhalfen mir zum Ziel.
Des Öfteren habe ich hier im Forum Deine Beiträge gelesen und
stets viel davon mitnehmen können (gerade im Bereich mod rewrite).

Vielen Dank dafür und ein sonniges Pfingtsfest...