Wie kann ich eine Übermittlungsschaltfläche vorübergehend für 3 Sekunden deaktivieren (erneut einreichen) und sie dann erneut aktivieren?

9

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.

    
AmazingChase 15.05.2012, 01:24
quelle

6 Antworten

13

Einfachster Weg:

%Vor%

In Ihrem Javascript:

%Vor%     
ninjagecko 15.05.2012 01:41
quelle
0

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:)

    
MushinNoShin 15.05.2012 01:31
quelle
0

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%     
D. Strout 15.05.2012 01:33
quelle
0

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.

    
Nivas 15.05.2012 01:31
quelle
0

Es gibt zwei Hauptprobleme mit Ihrem JavaScript:

  1. Die .getElementById() -Methode gehört zu document , nicht zu Ihrem Formular (oder einem anderen) Element.

  2. 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:

%Vor%     
nnnnnn 15.05.2012 01:33
quelle
0
%Vor%

Ссылка

    
Pablo Pazos 05.08.2017 00:14
quelle

Tags und Links