Krams: Per Javascript und Cookie einem Form Textelement einen Wert zuwe

Hallo liebe Helfer,
ich habe schon etliche Seiten gelesen und auch einige Beispiele gefunden, aber nie die Lösung, die ich brauche...
Ich habe eine JSP und einen Cookie. Auf der JSP Seite gebe ich einen Benutzer und ein PW ein und den speichert mein Cookie auch ab, jedoch soll er bei einem erneuten Besuch diese Werte schon in die Felder schreiben, jedoch macht er das nicht und das ist mein Problem. (Ich kann den Cookie auf der JSP überall ausgeben, nur nicht in die Form schreiben..
Hier der Code der JSP (intern.jsp):

<html>  
  
<head>  
  
<script language="JavaScript" src="cookieBenutzerSpeichern.js"></script>  
  
  
  
</head>  
  
  
<body>  
		<!-- Inhalt -->  
		<div id="main">  
			<div class="left">  
				<h1>Internes</h1>  
				<br> <br>  
				<div align="center">  
  
  
					<form action="../museumphp/intern.php" method="post" name="form1">  
						<input type="hidden" name="step" value="1">  
						<table border="0" cellpadding="5" cellspacing="2" width="300">  
  
							<tr>  
								<td align="right"><span class="normalbold">Benutzername:</span></td>  
								<td align="center"><input type="text" name="username"  
									size="20" maxlength="255"  
									title="Bitte geben Sie hier Ihren Benutzernamen ein." onblur="nameSpeichern()"></td>  
							</tr>  
  
							<tr>  
								<td align="right"><span class="normalbold">Passwort:</span></td>  
								<td align="center"><input type="password" name="passwort"  
									size="20" maxlength="255"  
									title="Bitte geben Sie hier Ihr Passwort ein. Achten Sie hierbei bitte insbesondere auf Gro&szlig;/Kleinschreibung!" onblur="passwortSpeichern()"></td>  
							</tr>  
  
  
  
							<tr>  
								<td class="formutitel" colspan="2" align="center"><input type="submit" value="Log in"  
  
									title="Um sich anzumelden, klicken Sie bitte einmal (!) auf diesen Knopf und warten Sie, bis sich die n&auml;chste Seite automatisch &ouml;ffnet....">  
									<a href="eintragen.jsp">Registrieren</a></td>  
							</tr>  
  
						</table>  
  
					</form>  
					  
				</div>  
			</div>  
		</div>  
</body>  
  

cookieBenutzerSpeichern.js:

  
	 var info,i,infoname,infowert;  
	 if (!document.cookie){}  
	 else {  
	  info=document.cookie.split('; ');  
	  for (i=0;i<info.length;i++) {  
	    infoname=info[i].split('=')[0];  
	    infowert=info[i].split('=')[1];  
	    if (infoname=='Name') {  
	 	  
	      document.write("Sch&ouml;n " + infowert + ", dass du wieder da bist. Ich wei&szlig; alles &uuml;ber dich!<br>");  
	      document.forms["form1"].elements["username"].value = ""+infowert;  
	    }  
	    if (infoname=='Passwort') {  
	      document.write("Dein Hobby ist zum Beispiel " + infowert + "!");  
	      document.form1.passwort.value = ""+infowert;  
	  
	    }  
  
	  }  
	 }  
  
  
function nameSpeichern()  
{  
 var a = new Date();  
 a = new Date(a.getTime() +1000*60*60*24*365);  
 document.cookie = 'Name'+'='+document.form1.username.value +'; expires='+a.toGMTString()+';';  
}  
function passwortSpeichern()  
{  
 var a = new Date();  
 a = new Date(a.getTime() +1000*60*60*24*365);  
 document.cookie = 'Passwort'+'='+document.form1.passwort.value +'; expires='+a.toGMTString()+';';  
}  
  

Bei der js-Seite document.forms["form1"].elements["username"].value = ""+infowert; sowie document.form1.passwort.value = ""+infowert; "funktioniert" nicht.
Vorab schonmal herzlichen Dank fürs Bemühen und Durchlesen! :)

VG
Krams

  1. Hi,

    Bei der js-Seite document.forms["form1"].elements["username"].value = ""+infowert; sowie document.form1.passwort.value = ""+infowert; "funktioniert" nicht.

    Das liegt daran, dass die Felder zu dem Zeitpunkt noch gar nicht existieren – hätte dir die JS-Fehlerkonsole deines Browsers auch mitteilen können!

    Binde das Script am Ende des body ein, oder warte auf den load- oder mindestens DOMContentReady-Event.

    (Und btw., das Verknüpfen eines String-Wertes mit einem Leerstring ist vollkommen überflüssig; k.A. warum Anfänger das so oft für nötig halten, sieht man in anderen Sprachen auch häufig.)

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Hallo,

      (Und btw., das Verknüpfen eines String-Wertes mit einem Leerstring ist vollkommen überflüssig; k.A. warum Anfänger das so oft für nötig halten, sieht man in anderen Sprachen auch häufig.)

      das erzwingt immerhin die Umwandlung des zweiten Operanden in einen String, so wie die Multiplikation mit 1 die Umwandlung in einen Zahlenwert erzwingt. Trotzdem kann ich mir nicht vorstellen, dass solche Tricks deswegen irgendwo gelehrt werden, zumal es nur sehr selten nötig ist, die automatische Typkonvertierung von Javascript auszutricksen (hier definitiv nicht). Für PHP gilt Ähnliches.

      @Krams: Ebenso &uuml;berfl&uuml;ssig ist das Verst&uuml;mmeln von &Uuml;mlauten.
         Ja, der war Absicht. ;-)

      Ciao,
       Martin

      --
      Die meisten Menschen werden früher oder später durch Computer ersetzt.
      Für manche würde aber auch schon ein einfacher Taschenrechner genügen.
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      1. @@Der Martin:

        nuqneH

        @Krams: Ebenso &uuml;berfl&uuml;ssig ist das Verst&uuml;mmeln von &Uuml;mlauten.

        Zum Nachlesen: Wann keine Escapes zu verwenden sind

        Ebenfalls überflüssig: language="JavaScript" beim script-Element. Sinnvoll war das noch nie; je nach HTML-Version/-Variante ist es auch falsch. (In HTML 4 war hingegen type="text/javascript" nötig.)

        Einfach <script src="cookieBenutzerSpeichern.js"></script>. Wo das zu stehen hat, hat ChrisB ja bereits gesagt.

        Ganz am Anfang hat noch <!DOCTYPE html> zu stehen, um Browser nicht in den Quirksmodus zu schicken.

        Qapla'

        --
        „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)