2012-04-07 19 views
0

Dies ist eine einfache Funktion, um das Datum anzuzeigen (ich möchte keine professionellen, so ist dies genug). Das Problem ist, dass ich es zeigen möchte, wenn die Seite geladen wird. Ich möchte nicht, dass der Benutzer auf irgendwelche Tasten oder irgendetwas drückt, aber es funktioniert nicht.window.onload funktioniert nicht correclty

Hier ist sie:

<script type="text/javascript"> 
    window.onload = ReturnDay; 
</script> 

<script> 
    function ReturnDay() { 
     var monthNames = [ 
      "January", 
      "February", 
      "March", 
      "April", 
      "May", 
      "June", 
      "July", 
      "August", 
      "September", 
      "October", 
      "November", 
      "December" 
     ]; 
     var dayNames= [ 
      "Sunday", 
      "Monday", 
      "Tuesday", 
      "Wednesday", 
      "Thursday", 
      "Friday", 
      "Saturday" 
     ]; 
     var newDate = new Date(); 

     newDate.setDate(newDate.getDate() + 1);  

     $('#dateday').html(dayNames[newDate.getDay()] + " " + newDate.getDate() + ' ' + monthNames[newDate.getMonth()] + ' ' + newDate.getFullYear());​ 
    } 
</script> 

<input id="dateday" type=text></div> 

Irgendwelche Ideen?

Vielen Dank.

+0

was nicht funktioniert? Tut es nichts (d. H. Fehler)? In diesem Fall öffne die Konsole (Strg + Shift + J in Firefox oder F12 in IE glaube ich) und suche nach dem Fehler, den es erzeugt. Oder tut es nicht, was Sie erwarten? In diesem Fall, was macht es und was soll es tun? – Armatus

+0

Es zeigt nichts. Es gibt ein leeres Textfeld zurück. – OnlyHope

Antwort

3

Obwohl Sie in Bezug auf das Problem klarer sein könnten, ist das Problem, weil Sie versuchen, den HTML-Wert eines Eingabefeldes festzulegen. Versuchen Sie stattdessen

$('#dateday').val(...); 
+0

Es funktionierte Thankssssssss :))) – OnlyHope

5

Funktion Hebe nur <script> Element innerhalb eines gegebenen nimmt. Wenn Sie versuchen, ReturnDay zu onload zuzuweisen, ist es nicht vorhanden.

Remove Linien 3 und 4 Ihres Beispielcode:

</script> 
    <script> 

Das heißt, wird am besten Praxis nicht berücksichtigt Objekte Funktionen direkt an Event-Handler zuweisen. Es ist zu einfach, Konflikte einzuführen. Verwenden Sie stattdessen Ereignisbindung, jQuery wird die Unterschiede in alt-IE für Sie abstrahieren.

$(window).load(ReturnDay); 

oder, wenn Sie das Skript ausgeführt werden soll, wenn das DOM bereit ist stattdessen in der Seite zu laden alle Bilder des Wartens:

$(document).ready(ReturnDay); 

, auch <input> Elemente definiert als leer. Die Einstellung von innerHTML hat keinen Sinn. Sie sollten val() nicht html() verwenden.

+0

Danke für Ihre Hilfe. – OnlyHope

1

Das Hauptproblem ist, dass Sie den Wert der Eingabe festlegen sollten, nicht es ist innerHTML.

document.getElementById('dateday').value = dayNames.......; 

Das heißt, ich glaube nicht, Ihre Funktion definiert ist, bevor Sie versuchen, es zu ordnen onload. Ich weiß Funktionen werden gehisst, aber ich denke, das gilt nur für den aktuellen Codeblock.

Sie müssen sowieso keine benannte Funktion definieren. Dazu einfach:

window.onload = function() { 
    // your date stuff here 
}; 
+0

Es sei denn, sie möchten den gleichen Code woanders verwenden. –

+1

In diesem Fall können Sie einfach 'window.onload()' schreiben und es wird das Onload-Skript erneut aufrufen. Recycling! = D –

+0

Danke Kolink & Ash. – OnlyHope

2

seine besser zu nutzen jquery $(document).ready() statt window.onload

+0

Ok, danke :) – OnlyHope

Verwandte Themen