Der Martin: Button der eine Java Funktion aufruft

Beitrag lesen

Hallo,

bitte lass diese Komplett-Zitate bleiben. Zitiere nur das, was zum Verstehen des Zusammenhangs nötig ist, dann wird's gleich viel übersichtlicher.

Habe mitlerweile auch schon beides versuch, aber im derzeitigen Zustand habe ich keine ahnung mehr, warum sich meine Seite bei Knopfdruck immer neu ladet!

Du hast immer noch document.write() drin. Diese Methode bewirkt, wenn sie *nach* dem Laden des Dokuments aufgerufen wird, dass das komplette Dokument weggeworfen und durch den neu ausgegebenen Inhalt ersetzt wird. Benutze auch an der Stelle innerHTML.

Ebenfalls weiß ich auch nicht warum er das Datum nicht in bei betätigen des Knopfdruck ausgibt

Weil du außer einem option-Element (das für sich allein keinen Sinn ergibt) nichts ausgibst.

<form>

Wozu ist das form-Element hier gut?

<button onclick="Datum()">Datum</button>

Ah, eine Stolperfalle. Ein button-Element ohne type-Attribut ist per Default ein submit-Button, der das umgebende Formular absendet. Das hat aber kein action-Attribut, also wird die aktuelle Seite neu geladen. Dass der Rest des Scripts noch durchläuft, ist dabei nicht von Belang; das mit document.write() weiter unten erzeugte kaputte Dokument wird dann sofort wieder ersetzt.

function Datum()
{
var heute=new Date();
var tag, monat,jahr,starttag,startmonat,startjahr;
starttag=heute.getDate();
startmonat=heute.getMonth();
startjahr=heute.getFullYear();

{

Warum steht der nachfolgende Code in einem eigenen Block?

heute=new Date(startjahr, startmonat, starttag + 2);

Nochmal heute? Das ist aus Javascript-Sicht okay, aber irreführend. Denn in Wirklichkeit ist es ja nicht heute, sondern übermorgen.

tag=heute.getDate();
if(tag<10)tag="0"+tag;
  monat=heute.getMonth()+1;
if(monat<10)monat="0"+monat;
  jahr=heute.getFullYear();
  document.write("<option value='"+tag+"."+monat+"."+jahr+"'>"+tag+"."+monat+"."+jahr+"</option><br>");
}

document.getElementById("Datum").innerHTML =Datum;

Autsch. Du suchst im Dokument ein Element mit der ID "Datum" (das ich nirgends gesehen habe), und versuchst, diesem das Funktionsobjekt Datum zuzuweisen. Wobei ich auch vermeiden würde, hier dieselben Namen zu verwenden; das kann zu Kollisionen führen.

Ciao,
 Martin

--
Die neue E-Mailadresse des Papstes: mailto:urbi@orbi
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(