Anzeige:
Ergebnis 1 bis 2 von 2

Thema: [JS] Feld eigenschaften nicht richtig erkannt

  1. #1
    Registrierter Benutzer
    Registriert seit
    08.07.2002
    Beiträge
    377

    [JS] Felder richtig ansprechen

    Anfaenglich gesagt, ich hab gestern meine ersten "tiefen" kontakte mit Javascript geschlossen und habe nun folgendes Problem. FF. Dateien sollen eine Tabelle mit zwei Input Feldern darstellen, wenn man auf den Text daneben klickt soll der Kalender aufgehn und den Wert im danebenstehenden input-feld eintragen. Soweit sogut, ich habe aber noch 2 Fehler, bei denen ich nicht weiterkomme:

    1. Die Kompletten Tage unterhalb von Mittwoch reagieren auf keine klicks, sie sind, ich weiss nicht .... ? Sieht da jemand was?
    2. Schreiben tut er immer nur ins 2. Input feld, ich versteh grundsaetzlich auch warum, aber nicht wie ich das umgehen kann...

    Auf jedenfall folgen hier die Dateien.

    1. Die Html-Datei, die angezeit wird:
    HTML-Code:
    <html>
    	<head>
    		<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    		<title>
    			Kalender
    		</title>
    		<script language="JavaScript1.5" src="kalender2.js"></script>
    		<script language="JavaScript1.5">
    			index = 0;
    			felder = [];
    		</script>
    	</head>
    	<body>
    		<!-- testlayout zur demonstration [ anfang ] -->
    		<table border="1">
    			<tr>
    				<td>
    					<span onClick="KalenderAnzeigen()">
    						Timer open
    					</span>
    				</td>
    				<td>
    					<form name="form1">
    						<input type="text" name="formtext1" value="">
    						<script language="JavaScript1.5">
    							felder.push( document.form1.formtext1 );
    							index++;
    						</script>
    						<?php include( 'kalenderModul.php' ); ?>
    					</form>
    				</td>
    			</tr>
    			<tr>
    				<td>
    					<span onClick="KalenderAnzeigen()">
    						Timer open2
    					</span>
    				</td>
    				<td>
    					<form name="form2">
    						<input type="text" name="formtext2" value="">
    						<script language="JavaScript1.5">
    							felder.push( document.form2.formtext2 );
    							index++;
    						</script>
    						<?php include( 'kalenderModul.php' ); ?>
    					</form>
    				</td>
    			</tr>
    		</table>
    		<!-- testlayout zur demonstration [ ende ] -->
    	</body>
    </html>
    2.Die Datei, die von 1 eingebunden wird, damit der Kalender geschrieben wird.
    HTML-Code:
    <!-- kalender [ anfang ] -->
    		<div id="KalenderAnzeige" style="background-color:white; width:210px; height:169px; position:absolute; left:0px; top:0px; z-index:1; layer-background-color:white; visibility:hidden;">
    		<!-- kalenderkopf [ anfang ] -->
    		<table style="font-family:Arial,sans-serif; font-size:10px; color:black;" border="0" cellpadding="0" cellspacing="1" width="210">
    			<tr>
    				<td width="30" height="20" align="center" valign="middle" style="border-width:1px; border-color:rgb(102,102,102); border-style:solid; cursor:pointer;" onMouseover="this.bgColor='#FF0000'" onMouseout="this.bgColor=''" onMouseup="Blatt('pre')">
    					<p align="center">&lt;&lt;</p>
    				</td>
    				<td width="150" height="20" align="center" valign="middle" colspan="5" style="border-width:1px; border-color:rgb(102,102,102); border-style:solid; cursor:pointer;" onMouseover="KalenderSchliessen('over')" onMouseout="KalenderSchliessen('out')" onMouseup="KalenderSchliessen('up')">
    						<p align="center"><span id="MonatsAnzeige">&nbsp;</span>&nbsp;&nbsp;<span id="JahresAnzeige">&nbsp;</span></p>
    		
    						</td>
    				<td width="30" height="20" align="center" valign="middle" style="border-width:1px; border-color:rgb(102,102,102); border-style:solid; cursor:pointer;" onMouseover="this.bgColor='#FF0000'" onMouseout="this.bgColor=''" onMouseup="Blatt('next')">
    					<p align="center">&gt;&gt;</p>
    				</td>
    			</tr>
    			<tr>
    				<td width="30" height="20" align="center" valign="middle" style="border-width:1px; border-color:rgb(102,102,102); border-style:solid;">
    					<p align="center">Mo.</p>
    		
    				</td>
    				<td width="30" height="20" align="center" valign="middle" style="border-width:1px; border-color:rgb(102,102,102); border-style:solid;">
    					<p align="center">Di.</p>
    				</td>
    				<td width="30" height="20" align="center" valign="middle" style="border-width:1px; border-color:rgb(102,102,102); border-style:solid;">
    					<p align="center">Mi.</p>
    				</td>
    				<td width="30" height="20" align="center" valign="middle" s????¸?tyle="border-width:1px; border-color:rgb(102,102,102); border-style:solid;">
    		
    					<p align="center">Do.</p>
    		
    				</td>
    				<td width="30" height="20" align="center" valign="middle" style="border-width:1px; border-color:rgb(102,102,102); border-style:solid;">
    					<p align="center">Fr.</p>
    				</td>
    				<td width="30" height="20" align="center" valign="middle" bgcolor="#CCCCCC" style="border-width:1px; border-color:rgb(102,102,102); border-style:solid;">
    					<p align="center">Sa.</p>
    		
    				</td>
    				<td width="30" height="20" align="center" valign="middle" bgcolor="#999999" style="border-width:1px; border-color:rgb(102,102,102); border-style:solid;">
    					<p align="center">So.</p>
    				</td>
    			</tr>
    		<!-- kalenderkopf [ ende ] -->
    		<script language="JavaScript1.5">
    			<!--
    			// tage des kalenders [ anfang ]
    			var b = 1;
    			for(var a=1; a<=6; a++) {
    				document.writeln("<tr>");
    				document.writeln("<td width=\"30\" height=\"20\" align=\"center\" valign=\"middle\" style=\"border-width:1px; border-color:rgb(102,102,102); border-style:solid; cursor:pointer;\" onMouseover=\"this.bgColor='#FF0000'\" onMouseout=\"this.bgColor=''\" onMouseup=\"Datum("+ b +", felder[index-1] )\">");
    				document.writeln("<p id=\"TF_"+ b +"\" align=\"center\">"+ b +"<\/p>");
    				document.writeln("<\/td>");
    				b++;
    				document.writeln("<td width=\"30\" height=\"20\" align=\"center\" valign=\"middle\" style=\"border-width:1px; border-color:rgb(102,102,102); border-style:solid; cursor:pointer;\" onMouseover=\"this.bgColor='#FF0000'\" onMouseout=\"this.bgColor=''\" onMouseup=\"Datum("+ b +", felder[index-1] )\">");
    				document.writeln("<p id=\"TF_"+ b +"\" align=\"center\">"+ b +"<\/p>");
    				document.writeln("<\/td>");
    				b++;
    				document.writeln("<td width=\"30\" height=\"20\" align=\"center\" valign=\"middle\" style=\"border-width:1px; border-color:rgb(102,102,102); border-style:solid; cursor:pointer;\" onMouseover=\"this.bgColor='#FF0000'\" onMouseout=\"this.bgColor=''\" onMo????¸?useup=\"Datum("+ b +", felder[index-1] )\">");
    				document.writeln("<p id=\"TF_"+ b +"\" align=\"center\">"+ b +"<\/p>");
    				document.writeln("<\/td>");
    				b++;
    				document.writeln("<td width=\"30\" height=\"20\" align=\"center\" valign=\"middle\" style=\"border-width:1px; border-color:rgb(102,102,102); border-style:solid; cursor:pointer;\" onMouseover=\"this.bgColor='#FF0000'\" onMouseout=\"this.bgColor=''\" onMouseup=\"Datum("+ b +", felder[index-1] )\">");
    				document.writeln("<p id=\"TF_"+ b +"\" align=\"center\">"+ b +"<\/p>");
    				document.writeln("<\/td>");
    				b++;
    				document.writeln("<td width=\"30\" height=\"20\" align=\"center\" valign=\"middle\" style=\"border-width:1px; border-color:rgb(102,102,102); border-style:solid; cursor:pointer;\" onMouseover=\"this.bgColor='#FF0000'\" onMouseout=\"this.bgColor=''\" onMouseup=\"Datum("+ b +", felder[index-1] )\">");
    				document.writeln("<p id=\"TF_"+ b +"\" align=\"center\">"+ b +"<\/p>");
    				document.writeln("<\/td>");
    				b++;
    				document.writeln("<td width=\"30\" height=\"20\" align=\"center\" valign=\"middle\" bgcolor=\"#CCCCCC\" style=\"border-width:1px; border-color:rgb(102,102,102); border-style:solid; cursor:pointer;\" onMouseover=\"this.bgColor='#FF0000'\" onMouseout=\"this.bgColor='#CCCCCC'\" onMouseup=\"Datum("+ b +", felder[index-1] )\">");
    				document.writeln("<p id=\"TF_"+ b +"\" align=\"center\">"+ b +"<\/p>");
    				document.writeln("<\/td>");
    				b++;
    				document.writeln("<td width=\"30\" height=\"20\" align=\"center\" valign=\"middle\" bgcolor=\"#999999\" style=\"border-width:1px; border-color:rgb(102,102,102); border-style:solid; cursor:pointer;\" onMouseover=\"this.bgColor='#FF0000'\" onMouseout=\"this.bgColor='#999999'\" onMouseup=\"Datum("+ b +", felder[index-1] )\">");
    				document.writeln("<p id=\"TF_"+ b +"\" align=\"center\">"+ b +"<\/p>");
    				document.writeln("<\/td>");
    				document.writeln("<\/tr>");
    				b++;
    			}
    			// tage des kalenders [ ende ]
    
    			// browser erkennung [ anfang ]
    			var agt=navigator.userAgent.toLowerCase();
    			var is_ie = (agt.indexOf("msie") != -1);
    			var is_nn = (agt.indexOf("netscape") != -1);
    			var is_op = (agt.indexOf("opera") != -1);
    			var is_ff = (agt.indexOf("firefox") != -1);
    			if(is_op) {
    				is_ie = false;
    				is_nn = false;
    				is_ff = false;
    			}
    			// browser erkennung [ ende ]
    
    			// aktuelles datum ermitteln und an kalender übergeben [ anfang ]
    			var d = new Date();
    			var dm = d.getMonth() + 1;
    			var dj = d.getYear();
    			if(dj < 999) dj+=1900;
    			Kalender(dm,dj);
    			// aktuelles datum ermitteln und an kalender übergeben [ ende ]
    			
    			// -->
    		</script>
    		</table>
    		</div>
    		<!-- kalender [ ende ] -->
    und 3. die verwendeten funktionen:
    HTML-Code:
    // kalender positionieren und öffnen [ anfang ]
    	function KalenderAnzeigen() {
    		if ( is_ie ) { 
    			oeffnewindow(window.event.clientX,window.event.clientY); 
    		} else { 
    			document.onclick = toolopener_ne; 
    		} 
    	} 
    	
    	function toolopener_ne(e) { 
    		oeffnewindow(e.pageX,e.pageY); 
    		document.onclick = false; 
    	} 
    	
    	function leftwindow(x,width) {
    		if (is_ie) {
    			if(document.body.offsetWidth < x+width) {
    			 var left = x-width;
    			 } else {
    			 var left = x;
    			 }
    		}
    		else {
    			if(window.innerWidth < x+width) {
    			 var left = x-width;
    			 } else {
    			 var left = x;
    			 }
    		}
    		return left; 
    	} 
    	
    	function topwindow(y,height) { 
    		if (is_ie) { 
    			if(document.body.offsetHeight < y+height) { 
    			 var top = y-height; 
    			 } else { 
    			 var top = y; 
    			 } 
    		}
    		else { 
    			if(window.innerHeight < y+height) { 
    			 var top = y-height; 
    			 } else { 
    			 var top = y; 
    			 } 
    		}
    		return top; 
    	}
    	
    	function oeffnewindow(x,y) {
    		var width = eval(document.getElementById("KalenderAnzeige").style.width.slice(0,-2));
    		var height = eval(document.getElementById("KalenderAnzeige").style.height.slice(0,-2));
    		var left = leftwindow(x,width); 
    		var top = topwindow(y,height);
    		document.getElementById("KalenderAnzeige").style.left = left;
    		document.getElementById("KalenderAnzeige").style.top = top;
    		document.getElementById("KalenderAnzeige").style.visibility = "visible";
    	} 
    // kalender positionieren und öffnen [ ende ]
    
    // kalender schliessen und monate umblättern [ anfang ]
    	function KalenderSchliessen(Wert) {
    		 switch(Wert) {
    			 case "over":
    				 tempMonat = document.getElementById("MonatsAnzeige");
    				 tempMonat = tempMonat.firstChild.nodeValue;
    				 tempJahr = document.getElementById("JahresAnzeige");
    				 tempJahr = tempJahr.firstChild.nodeValue;
    				 document.getElementById("MonatsAnzeige").firstChild.data = "Timer";
    				 document.getElementById("JahresAnzeige").firstChild.data = "close";
    				 break;
    			 case "out":
    				 document.getElementById("MonatsAnzeige").firstChild.data = tempMonat;
    				 document.getElementById("JahresAnzeige").firstChild.data = tempJahr;
    				 break;
    			 case "up":
    				 document.getElementById("MonatsAnzeige").firstChild.data = tempMonat;
    				 document.getElementById("JahresAnzeige").firstChild.data = tempJahr;
    				 document.getElementById("KalenderAnzeige").style.visibility = "hidden";
    				 break;
    		 }
    	}
    	
    	function Blatt( pn ) {
    		switch(pn) {
    		 case "pre":
    			if(dm == 1) {
    			 dm = 12;
    			 dj = dj-1;
    			 } else {
    			 dm = dm-1;
    			 dj = dj;
    			}
    		 break;
    		 case "next":
    			if(dm == 12) {
    			 dm = 1;
    			 dj = dj+1;
    			 } else {
    			 dm = dm+1;
    			 dj = dj;
    			}
    		 break;
    		}
    		document.getElementById("TF_"+ FeldzahlHeute).style.background = "";
    		Kalender(dm,dj);
    	}
    // kalender schliessen und monate umblättern [ ende ]
    	
    // datums übergabe an formfeld [ anfang ]
    	function Datum(Wert, field ) {
    	 if(document.getElementById("TF_"+ Wert).firstChild.data != "") {
    	  if(document.getElementById("TF_"+ Wert).firstChild.data <= 9) {
    	   var TagU = "0"+document.getElementById("TF_"+ Wert).firstChild.data;
    	  } else {
    	   var TagU = document.getElementById("TF_"+ Wert).firstChild.data;
    	  }
    	  if(dm <= 9) {
    	   var MonU = "0"+dm;
    	  } else {
    	   var MonU = dm;
    	  }
    	  field.value = TagU+"."+MonU+"."+dj;
    	 // document.form1.formtext1.value = TagU+"."+MonU+"."+dj;
    	 document.getElementById("KalenderAnzeige").style.visibility = "hidden";
    	 }
    	}
    // datums übergabe an formfeld [ ende ]
    	
    	
    // kalender berechnung [ anfang ]
    	function Kalender(Monat,Jahr) {
    		Monatsname = new Array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
    		Tag = new Array ("Mo","Di","Mi","Do","Fr","Sa","So");
    		
    		var jetzt = new Date();
    		var DieserMonat = jetzt.getMonth() + 1;
    		var DiesesJahr = jetzt.getYear();
    		if(DiesesJahr < 999) DiesesJahr+=1900;
    		var DieserTag = jetzt.getDate();
    		var Zeit = new Date(Jahr,Monat-1,1);
    		var Start = Zeit.getDay();
    		if(Start > 0) Start--;
    		else Start = 6;
    		var Stop = 31;
    		if(Monat==4 ||Monat==6 || Monat==9 || Monat==11 ) Stop--;
    		if(Monat==2) {
    			 Stop = Stop - 3;
    			 if(Jahr%4==0) Stop++;
    			 if(Jahr%100==0) Stop--;
    			 if(Jahr%400==0) Stop++;
    		}
    	
    		document.getElementById("MonatsAnzeige").firstChild.data = Monatsname[Monat-1];
    		document.getElementById("JahresAnzeige").firstChild.data = Jahr;
    	
    		var Tageszahl = 1;
    		var Feldzahl = 1;
    		for(var i=0;i<=5;i++) {
    		  for(var j=0;j<=5;j++) {
    			if((i==0)&&(j < Start)) {
    			 document.getElementById("TF_"+ Feldzahl).firstChild.data = "";
    			 Feldzahl++;
    			 }
    			else {
    			  if(Tageszahl > Stop) {
    				document.getElementById("TF_"+ Feldzahl).firstChild.data = "";
    				Feldzahl++;
    				}
    			  else {
    				if((Jahr==DiesesJahr)&&(Monat==DieserMonat)&&(Tageszahl==DieserTag)) {
    				 document.getElementById("TF_"+ Feldzahl).firstChild.data = Tageszahl;
    				 document.getElementById("TF_"+ Feldzahl).style.background = "#00FF00";
    				 FeldzahlHeute = Feldzahl;
    				 Feldzahl++;
    				 }
    				else {
    				 document.getElementById("TF_"+ Feldzahl).firstChild.data = Tageszahl;
    				 Feldzahl++;
    				 }
    				Tageszahl++;
    				}
    			  }
    			}
    			if(Tageszahl > Stop) {
    			  document.getElementById("TF_"+ Feldzahl).firstChild.data = "";
    			  Feldzahl++;
    			  }
    			else {
    			  if((Jahr==DiesesJahr)&&(Monat==DieserMonat)&&(Tageszahl==DieserTag)) {
    				document.getElementById("TF_"+ Feldzahl).firstChild.data = Tageszahl;
    				Feldzahl++;
    				}
    			  else {
    				document.getElementById("TF_"+ Feldzahl).firstChild.data = Tageszahl;
    				Feldzahl++;
    				}
    			  Tageszahl++;
    			}
    		  }
    		}
    // kalender berechnung [ ende ]
    Vielleicht kann sich das jemand mal anschauen,
    ich sag im Voraus schon mal DANKE!!!

    mfg nul
    Geändert von nul (26-07-2005 um 12:27 Uhr)
    Amilo D - 2,8 Ghz - ATI Radeon 9000
    Debian GNU/Linux 3.1 (Sarge)

  2. #2
    Registrierter Benutzer
    Registriert seit
    08.07.2002
    Beiträge
    377

    Smile

    OK, Nr. 1 hat sich erledigt, das Problem lag darin, dass Dreamweaver beim Kopieren an bestimmte stellen ????.?? usw. eingefuegt hat, nach dem Loeschen bleibt nur mehr 2 uebrig, bitte deshalb erneut um Hilfe.
    Amilo D - 2,8 Ghz - ATI Radeon 9000
    Debian GNU/Linux 3.1 (Sarge)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •