Submit button disabled --> wieder enablen

MC-René

Erfahrenes Mitglied
Hallo zusammen!

Ich komme eher aus der PHP-Ecke, habe nun aber ein Javascript-Problem.

Auf meiner Seite kann ein User nach ausfüllen des Formulars auf "Submit" klicken. Danach werden die Daten ausgewertet und eine CSV per e-Mail versand ODER (Radio-Button-Auswahl) mittels Header an den Browser geschickt.

Bei e-Mail Versand klappt das auch, dass der Submit-Button wieder enabled wird. Nur beim Datei-Versand (also der weg über den Header).

Dem Submit Button gebe ich ein disabled:
Javascript:
<form action="index.php" method="post">

...

<input type="radio" name="als_datei" value=0 checked>als e-Mail-Anhang
<input type="radio" name="als_datei" value=1>als Datei

...

<input id="send" type="submit" value="Anfordern" onclick="this.disabled=1;document.getElementById('pleasewait').style.display='block';return true"/>
<div id="pleasewait" style="display:none">Bitte warten...</div>

in der index.php:
PHP:
<?
...
if ($als_datei==1)
{
header("content-type: application/csv-tab-delimited-table");
header("content-length: ".strlen($csv));
header("content-disposition: attachment; filename=\"".$dateiname."\"");
echo $csv; 
}
else //email senden
?>

Ich vermute dass die Javascript funktion gar nicht mitbekommt, dass "fertig" ist. Ich habe gerade keine Lösung. Wer kann mir nen Schubs geben!? Alternativ tut es auch ein Timer für "disabled=1".
 
Habs mit nem Timeout in <Form>-Tag gelöst:

HTML:
<form action="index.php" method="post" name="formular" onsubmit="document.formular.send.disabled=true; setTimeout('document.formular.send.disabled=false', 5000);">
 
Schöner wäre die Daten via Ajax zu übermitteln und wenn der Ajaxcall ausgeführt wurde (Der Server etwas antwortet) den Button wieder enablen.
Als fertige Lösung würde sich das hier vielleicht anbieten: http://jquery.malsup.com/form/ (Habs nicht ausgetestet, aber so müsstest du den Ajaxcall nicht selbst schreiben)

Aber mit Timeout gehts natürlich auch :)
 

Neue Beiträge

Zurück