Lieber JürgenB,
fast:
function abc () { var a = document.getElementById("vorname").value+" "+document.getElementById("nachname").value; document.getElementById("name").value = a; } document.getElementById("go").onclick = abc;
Die Aktion soll ja sofort ausgeführt werden, daher muss das
window.onload
weg. Außerdem ist es zu diesem Zeitpunkt für einwindow.onload
zu spät.
ist es nicht so, dass das document.getElementById("go").onclick = abc;
bereits ausgeführt wird, wenn das Dokument noch nicht fertig geladen hat und damit die Funktionalität nicht bereitgestellt werden kann? Steht der Code in einem <script>, welches erst nach dem Formular steht, dann wäre das kein Problem.
Mein Vorschlag wäre, alles in eine Funktion zu packen, die mit addEventListener
und DOMDocumentLoaded) eingebettet ist:
document.addEventListener("DOMContentLoaded", function () {
var vor = document.getElementById("vorname"),
nach = document.getElementById("nachname"),
ganz = document.getElementById("name");
function kombiniere () {
// vor, nach und ganz sind als Variablen hier bekannt (Closure)
ganz.value = vor.value + " " + nach.value;
}
// Seid ihr alle da? Bei geänderten Werten zaubern:
if (vor && nach && ganz) {
vor.addEventListener("change", kombiniere);
nach.addEventListener("change", kombiniere);
}
});
Ich finde, man sollte das Ergebnis von getElementById
immer prüfen, anstatt sich blind darauf zu verlassen, dass das Element so auch existiert.
Liebe Grüße,
Felix Riesterer.