Doktor Knallcharge: Datum ohne wochenende ausgeben

Beitrag lesen

Hier wird jetzt das Feld "datum" ausgelesen und es werden auf das ausgelesen Datum 2 tage hinzuaddiert. Bei Knopfdruck wird das Datum im <p> element ausgegeben. Stimmt das so weit?

Bestenfalls ansatzweise. Du versuchst verzweifelt, das Feld datum auszulesen, das war's aber auch schon.

Schau dir doch bitte Code, den du bekommst, erstmal ordentlich an – und damit meine ich nicht "überfliegen und kopieren", sondern wirklich versuchen zu verstehen, was da im Groben vor sich geht, auch, wenn's drei Tage braucht.

Mich stört gerade, dass ich dir nacheinander zwei recht eindeutig benannte Funktionen an die Hand gegeben habe, addiereWochentage() und addiereZweiWerktage(), die zweite beschrieben als einfacheren Ersatz für die erste, du aber blind beide rüberkopierst, anstatt diejenige zu nehmen, die deinem Wunsch am nächsten kommt.
Und obendrein übernimmst du dann auch noch den Democode, der nur, Zitat, "zum Prüfen" der ersten Funktion gedacht war, d.h. um zu sehen, ob sie das tut, was sie soll.

Du schaust dir auch nicht an, welche Argumente eine Funktion haben möchte. Wenn addiereWochentage() ein Argument tage hat und dieses in der Funktion bei heute.getDate() … + tage verwendet wird, dann solltest du dir denken können, dass bei tage die Anzahl der zu addierenden Tage angegeben werden muss.
Stattdessen notierst du ein ziemlich sinnbefreites onclick="addiereWochentage(tage)"; richtig wäre onclick="addiereWochentage(2)".

In dieser Hinsicht noch klüger wäre gewesen, hättest du kurzerhand addiereZweiWerktage(datum) benutzt, denn du möchtest ja zwei Werktage zu einem Datum hinzuaddieren.

Dies erstmal zum Grundsätzlichen. Alles in allem habe ich den Eindruck, du hast dir überhaupt keine Mühe gegeben, den Code und seine Funktion zu verstehen. Du musst dir schon auch selbst ein wenig Mühe geben, wenn du andere Leute um Hilfe bittest. Aus dem Grundschulalter, wo die Erwachsenen den Lütten noch zur Hand gehen, bist du doch sicher raus.

Was jetzt deinen Code angeht:

<input class="Button" type="text" name="datum" id="datepicker">

function addiereWochentage(tage) {
  var heute = document.getElementById('datum');

Die letzte Zeile hieß ursprünglich

var heute = new Date()

Hier wird der Variablen namens heute ein neues Date-Objekt zugewiesen. Ein Date-Objekt ist genau dieses, ein Objekt, spezialisiert auf die Verarbeitung von Datum und Uhrzeit, nicht mehr, nicht weniger.
Du kannst da nicht einfach ein Element aus dem HTML-Dokument reinschreiben, das ist doch offenkundig was völlig anderes. Wenn überhaupt, dann möchtest den http://de.selfhtml.org/javascript/objekte/elements.htm#value@title=Wert haben, der in diesem <input>-Element drinsteckt.

Dieser Wert ist aus Sicht des Javascript-Codes allerdings eine Zeichenkette, vermutlich etwas à la "1.2.2014". Das bedeutet, du musst die Zeichenkette erstmal in ein Date-Objekt umwandeln, bevor du anfangen kannst, mit einem Datum zu rechnen. Weil du offenkundig noch einiges zu lernen hast, insbesondere anständiges Lernen, solltest du probieren, die Zeichenkette an den Punkten in ihre Bestandteile Tag, Monat und Jahr http://de.selfhtml.org/javascript/objekte/string.htm#split@title=aufzutrennen und damit ein <http://de.selfhtml.org/javascript/objekte/date.htm#allgemeines@title=Date-Objekt füttern>.

Das wären also meine zweieinhalb Aufgaben für dich:
1. Auslesen eines <input>-Elements.
2. Trennen einer Zeichenkette und Übergabe der Einzelteile an ein Date-Objekt.

Versuche nicht, in deinem bestehenden Code rumzuwurschteln, da kommst du nur durcheinander. Mache eine ganz neue Datei auf und beginne hiermit:

<html><body>  
<input type="text" id="datum" value="1.2.2014">  
<script>  
var wertMeinesInput = …  
…  
var meinGelesenesDatum = new Date(alert(meinGelesenesDatum);  
</script>  
</body></html>

Wenn du Auslesen, Auftrennen und Umwandeln gemeistert hast und die letzte Zeile, alert(meinGelesenesDatum), das Datum ausspuckt, das im <input>-Element steht (per Vorgabe 1.2.2014), kannst du dein neu erworbenes Wissen in dein Projekt übernehmen und gerne nochmal bezüglich Details oder der Werktagsrechnung nachfragen.

Aber bis dahin bin halte ich mir hier raus, weil du, wie eingangs geschrieben, erstmal lernen musst, selbständig zu lernen, anstatt darauf zu setzen, dass man dir schon alles vorgekauen wird.
Deine Aufgabenstellung war interessant, aber wenn da bei dir außer Copy&Paste nun so gar nichts anzukommen scheint, ist es die Mühe nicht wert.

PS: Beim Arbeiten hilft dir eventuell Firebug. Das ist aber kein Muss, Firefox und Opera haben ähnliche Werkzeuge an Bord.