Herbert1204: Kalender

Hallo
Ich habe ein Script, bestehend aus einem Button und einem Textfeld, mit dem ich ein Datum auf meine Webside eingeben kann. Durch Klicken auf den Button wird das angeklickte Datum in das Textfeld eingeben. Die Eingabe sieht folgendermaßen aus:  Beispiel „ 1.2.2010 “
Soweit so gut.
Nun möchte ich aber sicherstellen, dass nur das aktuelle Tagesdatum und Tage, die in der Zukunft liegen, angezeigt werden. Außerdem soll
durch einen weiteren Button und Textfeld noch ein zweites Datum angezeigt werden. Hierbei soll wieder sichergestellt werden, dass das zweite Datum vor dem ersten liegt.

Kann mir jemand helfen?

ps: Das Script ist zu umfangreich um es hier einzugeben.

  1. Kann mir jemand helfen?

    Bei was?

    Struppi.

    1. <!-- Script-Anfang -->
      <!-- www-java24.net - DIE Javascript - Ressource -->

      <!--  Diesen Code musst Du in den -body- einbauen -->
      <SCRIPT language=javascript>
      <!-- Begin  //place these scripts within BODY tag if you are using IE 4.0 or below.
      //****************************************************************************
      // PopCalendar 3.30, Emailware(please mail&commend me if u like it)
      // Originally coded by Liming(Victor) Weng, email: victorwon@netease.com
      // Release date: 2000.3.7
      // Anyone may modify it to satify his needs, but please leave this comment ahead.
      //****************************************************************************

      var gdCtrl = new Object();
      var goSelectTag = new Array();
      var gcGray = "#808080";
      var gcToggle = "#ffff00";
      var gcBG = "#cccccc";

      var gdCurDate = new Date();
      var giYear = gdCurDate.getFullYear();
      var giMonth = gdCurDate.getMonth()+1;
      var giDay = gdCurDate.getDate();

      function fSetDate(iYear, iMonth, iDay){
        VicPopCal.style.visibility = "hidden";
        gdCtrl.value = iDay+"."+iMonth+"."+iYear; //Here, you could modify the locale as you need !!!!
        for (i in goSelectTag)
         goSelectTag[i].style.visibility = "visible";
        goSelectTag.length = 0;
      }

      function fSetSelected(aCell){
        var iOffset = 0;
        var iYear = parseInt(tbSelYear.value);
        var iMonth = parseInt(tbSelMonth.value);

      self.event.cancelBubble = true;
        aCell.bgColor = gcBG;
        with (aCell.children["cellText"]){
         var iDay = parseInt(innerText);
         if (color==gcGray)
      iOffset = (Victor<10)?-1:1;
      iMonth += iOffset;
      if (iMonth<1) {
      iYear--;
      iMonth = 12;
      }else if (iMonth>12){
      iYear++;
      iMonth = 1;
      }
        }
        fSetDate(iYear, iMonth, iDay);
      }

      function Point(iX, iY){
      this.x = iX;
      this.y = iY;
      }

      function fBuildCal(iYear, iMonth) {
        var aMonth=new Array();
        for(i=1;i<7;i++)
         aMonth[i]=new Array(i);

      var dCalDate=new Date(iYear, iMonth-1, 1);
        var iDayOfFirst=dCalDate.getDay();
        var iDaysInMonth=new Date(iYear, iMonth, 0).getDate();
        var iOffsetLast=new Date(iYear, iMonth-1, 0).getDate()-iDayOfFirst+1;
        var iDate = 1;
        var iNext = 1;

      for (d = 0; d < 7; d++)
      aMonth[1][d] = (d<iDayOfFirst)?-(iOffsetLast+d):iDate++;
        for (w = 2; w < 7; w++)
         for (d = 0; d < 7; d++)
      aMonth[w][d] = (iDate<=iDaysInMonth)?iDate++:-(iNext++);
        return aMonth;
      }

      function fDrawCal(iYear, iMonth, iCellHeight, iDateTextSize) {
        var WeekDay = new Array("So","Mo","Di","Mi","Do","Fr","Sa");
        var styleTD = " bgcolor='"+gcBG+"' bordercolor='"+gcBG+"' valign='middle' align='center' height='"+iCellHeight+"' style='font:bold "+iDateTextSize+" Courier;";            //Coded by Liming Weng(Victor Won)  email:victorwon@netease.com

      with (document) {
      write("<tr>");
      for(i=0; i<7; i++)
      write("<td "+styleTD+"color:#990099' >" + WeekDay[i] + "</td>");
      write("</tr>");

      for (w = 1; w < 7; w++) {
      write("<tr>");
      for (d = 0; d < 7; d++) {
      write("<td id=calCell "+styleTD+"cursor:hand;' onMouseOver='this.bgColor=gcToggle' onMouseOut='this.bgColor=gcBG' onclick='fSetSelected(this)'>");
      write("<font id=cellText Victor='Liming Weng'> </font>");
      write("</td>")
      }
      write("</tr>");
      }
        }
      }

      function fUpdateCal(iYear, iMonth) {
        myMonth = fBuildCal(iYear, iMonth);
        var i = 0;
        for (w = 0; w < 6; w++)
      for (d = 0; d < 7; d++)
      with (cellText[(7*w)+d]) {
      Victor = i++;
      if (myMonth[w+1][d]<0) {
      color = gcGray;
      innerText = -myMonth[w+1][d];
      }else{
      color = ((d==0)||(d==6))?"red":"black";
      innerText = myMonth[w+1][d];
      }
      }
      }

      function fSetYearMon(iYear, iMon){
        tbSelMonth.options[iMon-1].selected = true;
        for (i = 0; i < tbSelYear.length; i++)
      if (tbSelYear.options[i].value == iYear)
      tbSelYear.options[i].selected = true;
        fUpdateCal(iYear, iMon);
      }

      function fPrevMonth(){
        var iMon = tbSelMonth.value;
        var iYear = tbSelYear.value;

      if (--iMon<1) {
        iMon = 12;
        iYear--;
        }

      fSetYearMon(iYear, iMon);
      }

      function fNextMonth(){
        var iMon = tbSelMonth.value;
        var iYear = tbSelYear.value;

      if (++iMon>12) {
        iMon = 1;
        iYear++;
        }

      fSetYearMon(iYear, iMon);
      }

      function fToggleTags(){
        with (document.all.tags("SELECT")){
        for (i=0; i<length; i++)
        if ((item(i).Victor!="Won")&&fTagInBound(item(i))){
        item(i).style.visibility = "hidden";
        goSelectTag[goSelectTag.length] = item(i);
        }
        }
      }

      function fTagInBound(aTag){
        with (VicPopCal.style){
         var l = parseInt(left);
         var t = parseInt(top);
         var r = l+parseInt(width);
         var b = t+parseInt(height);
      var ptLT = fGetXY(aTag);
      return !((ptLT.x>r)||(ptLT.x+aTag.offsetWidth<l)||(ptLT.y>b)||(ptLT.y+aTag.offsetHeight<t));
        }
      }

      function fGetXY(aTag){
        var oTmp = aTag;
        var pt = new Point(0,0);
        do {
         pt.x += oTmp.offsetLeft;
         pt.y += oTmp.offsetTop;
         oTmp = oTmp.offsetParent;
        } while(oTmp.tagName!="BODY");
        return pt;
      }

      // Main: popCtrl is the widget beyond which you want this calendar to appear;
      //       dateCtrl is the widget into which you want to put the selected date.
      // i.e.: <input type="text" name="dc" style="text-align:center" readonly><INPUT type="button" value="V" onclick="fPopCalendar(dc,dc);return false">
      function fPopCalendar(popCtrl, dateCtrl){
        gdCtrl = dateCtrl;
        fSetYearMon(giYear, giMonth);
        var point = fGetXY(popCtrl);
        with (VicPopCal.style) {
         left = point.x;
      top  = point.y+popCtrl.offsetHeight+1;
      width = VicPopCal.offsetWidth;
      height = VicPopCal.offsetHeight;
      fToggleTags(point);
      visibility = 'visible';
        }
        VicPopCal.focus();
      }

      function fHideCal(){
        var oE = window.event;
        if ((oE.clientX>0)&&(oE.clientY>0)&&(oE.clientX<document.body.clientWidth)&&(oE.clientY<document.body.clientHeight)) {
      var oTmp = document.elementFromPoint(oE.clientX,oE.clientY);
      while ((oTmp.tagName!="BODY") && (oTmp.id!="VicPopCal"))
      oTmp = oTmp.offsetParent;
      if (oTmp.id=="VicPopCal")
      return;
        }
        VicPopCal.style.visibility = 'hidden';
        for (i in goSelectTag)
      goSelectTag[i].style.visibility = "visible";
        goSelectTag.length = 0;
      }

      var gMonths = new Array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");

      with (document) {
      write("<Div id='VicPopCal' onblur='fHideCal()' onclick='focus()' style='POSITION:absolute;visibility:hidden;border:2px ridge;width:10;z-index:100;'>");
      write("<table border='0' bgcolor='#6699cc'>");
      write("<TR>");
      write("<td valign='middle' align='center'><input type='button' name='PrevMonth' value='<' style='height:20;width:20;FONT:16 Fixedsys' onClick='fPrevMonth()' onblur='fHideCal()'>");
      write("&nbsp;&nbsp;<select name='tbSelMonth' onChange='fUpdateCal(tbSelYear.value, tbSelMonth.value)' Victor='Won' onclick='self.event.cancelBubble=true' onblur='fHideCal()'>");
      for (i=0; i<12; i++)
      write("<option value='"+(i+1)+"'>"+gMonths[i]+"</option>");
      write("</SELECT>");
      write("&nbsp;&nbsp;<SELECT name='tbSelYear' onChange='fUpdateCal(tbSelYear.value, tbSelMonth.value)' Victor='Won' onclick='self.event.cancelBubble=true' onblur='fHideCal()'>");
      for(i=1990;i<2015;i++)
      write("<OPTION value='"+i+"'>&nbsp;&nbsp;"+i+"&nbsp;&nbsp;</OPTION>");
      write("</SELECT>");
      write("&nbsp;&nbsp;<input type='button' name='PrevMonth' value='>' style='height:20;width:20;FONT:16 Fixedsys' onclick='fNextMonth()' onblur='fHideCal()'>");
      write("</td>");
      write("</TR><TR>");
      write("<td align='center'>");
      write("<DIV style='background-color:teal;'><table width='100%' border='0'>");
      fDrawCal(giYear, giMonth, 18, 16);
      write("</table></DIV>");
      write("</td>");
      write("</TR><TR><TD align='center'>");
      write("<B style='cursor:hand' onclick='fSetDate(giYear,giMonth,giDay); self.event.cancelBubble=true' onMouseOver='this.style.color=gcToggle' onMouseOut='this.style.color=0'>Heute:&nbsp;&nbsp;"+gMonths[giMonth-1]+"&nbsp;"+giDay+",&nbsp;&nbsp;"+giYear+"</B>");
      write("</TD></TR>");write("</TD></TR>");
      write("</TABLE></Div>");
      }
      // End -- Coded by Liming Weng, email: victorwon@netease.com -->
      </SCRIPT>

      <input onclick="fPopCalendar(firstDay,firstDay); return false" type=button value=Datum>
            <input type="text" name=firstDay readOnly style="font-weight:bold; font-size:15px; text-align:center;" size="9">

      <input onclick="fPopCalendar(lastDay,lastDay); return false" type=button value=Datum>
            <input type="text" name=lastDay readOnly style="font-weight:bold; font-size:15px; text-align:center;" size="9">

      1. <!-- Script-Anfang -->

        war das die Antwort auf meine Frage?

        Struppi.

      2. Mahlzeit Herbert1204,

        <!-- Script-Anfang -->
        <!-- www-java24.net - DIE Javascript - Ressource -->

        http://www.java-ist-nicht-javascript.de/

        <SCRIPT language=javascript>

        Es fehlt das - zumindest in gewissen HTML-Varianten - <http://de.selfhtml.org/http://bbsi/selfhtml/html/referenz/attribute.htm#script@title=zwingend erforderliche "type"-Attribut>.

        <!-- Begin  //place these scripts within BODY tag if you are using IE 4.0 or below.

        IE 4.0??? Von wann ist denn das Skript ... ich ahne Schreckliches.

        // Release date: 2000.3.7

        Du hast Dich schwerster Leichenschändung schuldig gemacht ... lass doch solche uralten Skripte in Frieden dort herummodern, wo sie hingehören: in gelöschten Verzeichnissen innerhalb entfernter Partitionen auf geschredderten Festplatten.

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
      3. Da rollen sich echt meine Zehnägel, wenn ich dieses Skript sehe. Nicht mal objektorientiert.

        <SCRIPT language=javascript>
        <!-- Begin  //place these scripts within BODY tag if you are using IE 4.0 or below.

        lol. 4.0 or below.

        // Release date: 2000.3.7

        :O

        var gdCtrl = new Object();
        function fSetDate(iYear, iMonth, iDay){

        Furchtbar diese Prefixe.

        gdCtrl.value = iDay+"."+iMonth+"."+iYear; //Here, you could modify the locale as you need !!!!

        Brrrrrrr....

        for (i in goSelectTag)

        "var" fehlt vor "i"

        var styleTD = " bgcolor='"+gcBG+"' bordercolor='"+gcBG+"' valign='middle' align='center' height='"+iCellHeight+"' style='font:bold "+iDateTextSize+" Courier;";  //Coded by Liming Weng(Victor Won)  email:victorwon@netease.com

        Wow.

          	Victor = i++;  
        

        hm....!? Ich habe Variablen noch nie nach mir selber benannt.

        with (document) {
        write("<Div id='VicPopCal' onblur='fHideCal()' onclick='focus()' style='POSITION:absolute;visibility:hidden;border:2px ridge;width:10;z-index:100;'>");
        write("<table border='0' bgcolor='#6699cc'>");
        write("<TR>");
        write("<td valign='middle' align='center'><input type='button' name='PrevMonth' value='<' style='height:20;width:20;FONT:16 Fixedsys' onClick='fPrevMonth()' onblur='fHideCal()'>");
        write("&nbsp;&nbsp;<select name='tbSelMonth' onChange='fUpdateCal(tbSelYear.value, tbSelMonth.value)' Victor='Won' onclick='self.event.cancelBubble=true' onblur='fHideCal()'>");

        Grauselig. Besonders das HTML Attribut "Victor".

        :-|

      4. Hi,

        <!-- Script-Anfang -->

        Erst sagst du, das Script ist zu umfangreich, um es zu posten - und jetzt klatschtst du es trotzdem einfach hier rein, anstatt die Frage, die dir gestellt wurde, zu beantworten?
        Kommt dir das nicht selbst etwas dumm vor?

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
  2. Hi,

    Kann mir jemand helfen?

    ps: Das Script ist zu umfangreich um es hier einzugeben.

    Um dein Problem zu lösen, müsste man wohl mittelgroße Änderungen in deinem vorliegenden Skript durchführen.

    Ich glaube niemand macht sich diese Arbeit, ein umfangreiches fremdes Skript auf deine Wünsche anzupassen.

    Finde die Stellen im Script und ändere sie entsprechend.

    Gruß!

  3. Mahlzeit Herbert1204,

    Webside

    Er du sikker på at du mener begrebet "Webside"?

    Durch Klicken auf den Button wird das angeklickte Datum

    Was wird jetzt angeklickt? Der Button oder das Datum?

    Nun möchte ich aber sicherstellen, dass nur das aktuelle Tagesdatum und Tage, die in der Zukunft liegen, angezeigt werden.

    Wo angezeigt werden? Im Textfeld? Oder bei/in/auf/an/neben/über dem Button?

    Außerdem soll durch einen weiteren Button und Textfeld noch ein zweites Datum angezeigt werden.

    Dann füge doch einfach ein weiteres Konstrukt (Button und Textfeld) in Deine Seite ein. Wo ist das Problem?

    Hierbei soll wieder sichergestellt werden, dass das zweite Datum vor dem ersten liegt.

    Wofür werden die Angaben in den Textfeldern gebraucht? Was passiert damit? Sind sie in einem Formular enthalten, dass in irgendeiner Form abgeschickt und von einem Server bearbeitet wird? Dann sollte die Prüfung *dort* erfolgen, da sämtliche Client-seitigen Prüfungen (z.B. mit Javascript) manipulierbar sind.

    ps: Das Script ist zu umfangreich um es hier einzugeben.

    Dann musst Du damit leben, dass Deine Leser im Nebel Deiner wenig aussagekräftigen "Beschreibungen" herumstochern, solange Du keine aussagekräftigeren lieferst ...

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|