PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Etwas in einem Textfeld ausgeben (JavaScript)



Christoph87
30-01-2004, 19:26
Hallo,
ich habe folgendes geschrieben:

<script language="JavaScript" type="text/JavaScript">
function rechner()
{

document.f.ergebnis.value="hallo"

}
</script>


Die Funktion rechner() wird ausgeführt, wenn ein Button angeklickt wird. ergebnis ist ein Textfeld:

<input name="ergebnis" type="text" id="ergebnis">


Aber wenn man den Button anklickt, wird "hallo" nicht in dem textfeld ausgegeben, warum nicht?

panzi
30-01-2004, 22:26
poste mal die ganze datei.
vieleicht stimmt was im DOM net....
Ich mach das immer mit IDs.



<script language="JavaScript" type="text/JavaScript">
var erg;

function init() {
erg = document.getElementByID("ergebnis");
}


function rechner() {
erg.value = "hallo";
}
</script>
...
<body onload="init();">
...
<input type="text" id="ergebnis">


Das attribut name ist veraltet und sollte nicht mehr verwendet werden. Und wenn es verwendet wird, so hat auch der alte Standard gesagt, das dann nicht id auch noch verwendet werden darf.

das mit init() mach is deswegen, da onload sicher dann ausgeführt wird, wenn der ganze DOM Baum schon geladen ist. Wenn ich gleich die Varaible wie folgt initiiere, so is sie in vielen browsern undefined (id nicht gefunden):


<script language="JavaScript" type="text/JavaScript">
var erg = document.getElementByID("ergebnis");
...
</script>


Und damit net jedesmal beim aufruf von rechner() getElemtByID() den DOM Baum durchsucht, merk ich mir eben ne referenz drauf. ;)

Hoff ich konnt dir helfen.

PS: Auf der seite kannst checken ob zumindest dein HTML Code dem Standard entspricht: http://validator.w3.org
Ja und selfhtml kennst sicher eh: http://selfhtml.teamone.de

Christoph87
31-01-2004, 11:50
Ich hab das Problem gelöst:
Der Name der form, in dem das ganze stand, war nicht "f" sondern was anderes, jetzt gehts.