JS Datum in Input-Feld ausgeben

CookIe21

Grünschnabel
Halli Hallo,

ich habe ein kl. Problem. Und zwar möchte ich dass das aktuelle Datum (- 30 Jahre + 1 Monat) in einem Input-Feld ausgegeben wird. Ich habe es voll "Ig" versucht zu lösen. Allerdings bin ich nur so weit gekommen, dass das Ding in 'nem Popup ausgegeben wird, wenn man das Feld verlässt.

Siehe JS-Code:
Code:
function input_date(){
  var Heute   = new Date();
  var Tage = Heute.getDate();
  var Monate = Heute.getMonth()+1;
  var Jahre = Heute.getFullYear()-30;
  alert( Tage + "." + "0" + Monate + "." + Jahre );
}

Und so schaut mein Input-Feld aus:
Code:
<input type="text" name="datum" onblur="input_date();">

Wie löse ich das Problem am besten?
mit value="javascript:input_date();" habe ich es schon probIert .. will leider nicht. :(

Bitte helft mir .. vielen Dank im Voraus!


MfG.
CookIe
 
Du hast es schon fast gehabt :)
Code:
<input type="text" name="datum" onblur="this.value=input_date()">
<script type="text/javascript">
<!--
function input_date(){
  var Heute   = new Date();
  var Tage = Heute.getDate();
  var Monate = Heute.getMonth()+1;
  var Jahre = Heute.getFullYear()-30;
  return( Tage + "." + "0" + Monate + "." + Jahre );
}
//-->
</script>
 
Ah .. sehr schön, funktioniert auch soweit ganz gut. Allerdings soll der Text immer da stehen, nicht nur nachdem man das Feld angeklickt und danach weggeklickt hat.

So geht's leider nicht:
Code:
<input type="text" name="datum" value="this.value=input_date()">

Das noch .. dann hab ich glaub ich alles! :)
Vielen vielen Dank!
 
Allerdings soll der Text immer da stehen, nicht nur nachdem man das Feld angeklickt und danach weggeklickt hat.

Wie soll das denn gehen? Du müsstest bei jedem Buchstabenchange überprüfen, ob schon ein richtiges Datum eingegeben wurde, dann noch einen Offset freilassen für schneller Änderung und dann das Feld ändern. Ob sich das auszahlen wird ;sprich: ohne onBlur wird es nicht gehen ...
 
Also zur Zeit steht "TT.MM.JJJJ" drin. Sobald man das Feld anklickt verschwindet dieses TT.MM.JJJJ und man kann selber was eintippen. Nunja .. statt dem TT.MM.JJJJ will ich einfach das aktuelle Datum haben.
 
Wenn ich es richtig verstanden habe, musst du nur folgendes schreiben:

Code:
<script type="text/javascript>
    function loadDate ()
    {
        var datum = new Date ();
        document.getElementById('datum').value = datum.getDate() +"." +(datum.getMonth() + 1) +"." +(datum.getFullYear() - 30);
    }
</script>

<body onload="javascript: loadDate ();">
    <input type="text" id="datum" />
</body>
 
Joa .. funktioniert soweit, super .. besten Dank! :)
Das Datum geht allerdings nicht weg, wenn ich das Feld anklick'. :(

Code schaut wie folgt aus:
Code:
<input type="text" name="DATUM" maxlength="10" class="Eingabe180" tabindex="8" style="width:174px;" onfocus="if(this.value == this.defaultValue) this.value = '';" onblur="PruefeGeb(this.value);" />
 
Wieso benötigst du denn das If im onFocus? Wann soll die Änderung erfolgen und was ist bitte eigentlich überhaupt der DefaultValue (dieser bleibt ja undefiniert) :confused:?
 
Ändere es mal dahingehend:
Code:
<script type="text/javascript">
    function loadDate ()
    {
        var datum = new Date ();
        document.getElementById('DATUM').defaultValue = 
        document.getElementById('DATUM').value = 
        datum.getDate() +"." +(datum.getMonth() + 1) +"." +(datum.getFullYear() - 30);
    }
</script>
defaultValue ist eine vordefinierte Eigenschaft von Formularfeldern welche Auskunft gibt über ihr ursprüngliches value-Attribut.
Da dies in jedem Fall jedoch leer ist(im <input> ist kein value notiert), schlägt der Vergleich fehl.
Durch die Änderung wird zusätzlich der Wert von defaultValue geändert.

Übrigens:wenn das Ganze nicht nur im IE funktionieren soll, musst du dem Input die ID "DATUM" geben...eine ID ist nicht dasselbe wie "name".
 
Zurück