Ich bin ziemlich neu in der Verwendung von Javascript und hier ist, was ich bisher habe:
%Vor%Und für den Button habe ich folgendes:
%Vor%Ich habe das stundenlang durcheinander gebracht und die meisten von euch werden es sehen und sofort wissen, was los ist. Meine Formular ID und Name ist LAYOUTFORM. Kann mir jemand sagen, was ich hier falsch mache?
Für Bonuspunkte möchte ich auch, dass der Text der Schaltfläche vorübergehend in "Creating ..." geändert wird, während er deaktiviert ist, und dann zurück zu Create PDF.
Löschen Sie die LAYOUTFORM zwischen Dokument und getElementById.
Nur ein Fyi, mit Firebug, Chrome-Entwickler-Tools oder was auch immer die entsprechenden Tools für IE sind, können Sie mit Ihrem Javascript auf der Konsole Affe. Console.log gibt auch Text und sogar Objekte (in CDT) aus, die Sie überprüfen können. Sehr nützlich zum Erkunden:)
Mehrere Probleme. Zunächst verwenden Sie im onclick-Attribut javascript: was für URLs gilt. Zeug im onclick-Attribut wird bereits als Code ausgewertet. Zweitens sollte der Code in Ihrem setTimeout entweder eine Zeichenfolge oder ein Funktionsname sein. Du solltest etwas mehr so machen:
HTML:
%Vor%JavaScript:
%Vor% Sie können auf die Schaltfläche entweder durch id
zugreifen, das global eindeutig ist
oder durch name
eindeutig für die umschließende Form
Sie müssen also entweder
%Vor%oder
%Vor%(Angenommen, create_button_name ist der Name der Schaltfläche:
%Vor%)
Der erste Parameter von setTimeout sollte eine Funktion sein:
%Vor%BTW, HTML muss nicht (und sollte nicht, für Lesbarkeit usw.) in Großbuchstaben sein.
Es gibt zwei Hauptprobleme mit Ihrem JavaScript:
Die .getElementById()
-Methode gehört zu document
, nicht zu Ihrem Formular (oder einem anderen) Element.
setTimeout()
erwartet, dass der erste Parameter eine Funktion (oder eine Zeichenkette ist, aber es ist fast nie eine Situation, wenn eine Zeichenkette geeignet ist).
Versuchen Sie Folgendes:
%Vor%Sie können die Deaktivierung und erneute Aktivierung in einer einzigen Funktion kombinieren:
%Vor% Beachten Sie, dass Sie .removeAttribute()
nicht verwenden müssen. Sie können die Eigenschaft .disabled
direkt festlegen (wie Sie es bereits getan haben, als Sie das Element deaktiviert haben).
EDIT: Habe gerade die "Bonuspunkte" in deiner Frage gesehen. Sie müssen nur die .value
-Eigenschaft festlegen:
Tags und Links javascript form-submit