Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Button erst inaktiv, dann aktiv





Frage

Hallo allerseits, wollt ma fragen, wie ich es machen kann, dass der ein bestimmter button für beispielsweise 10 Sekunden inaktiv ist und dann erst aktiv wird. Habe folgendes versucht, aber funzt net: <script language="javascript"> <!-- var secs = 10; var wait = secs * 1000; document.sform.submitbtn.disabled=true; for(i=1;i<=secs;i++) { window.setTimeout("update(" + i + ")", i * 1000); } window.setTimeout("timer()", wait); function update(num) { if(num == (wait/1000)) { document.sform.submitbtn.value = "Senden"; } else { printnr = (wait/1000)-num; document.sform.submitbtn.value = "Senden (" + printnr + ")"; } } function timer() { document.sform.submitbtn.disabled=false; } //--> </script> Über Antworten wär ich sehr dankbar, Gruß, Üsch

Antwort 1 von rabies

Ich sehe da kein Problem.

Du hast das Script bestimmt im Header des Quelltextes (<head>) stehen, richtig? Das Problem ist, so denke ich mir, dass zum Zeitpunkt, an dem der Submitbutton auf disabled gesetzt werden soll, der Parser des Browsers das Element 'submitbtn' noch gar nicht kennt.

Der ganze Scriptblock sollte sich nach Deinen Wünschen verhalten, wenn Du Ihn unterhalb des Formulars setzt.

--rabies.

Antwort 2 von Uesch

Hmmm,

hab alles gemacht wie dus gesagt hast. Wie muss denn der "Senden-Button" heißen? Denn er heißt jetzt standardmäßig SubmitButtonName.

Antwort 3 von rabies

Du sprichst Ihn doch oben schon mit
document.sform.submitbtn
an. Demnach heißt der Submitbutton submitbtn (sprich, dass Attribut name= muss im input-Feld den Wert submitbtn haben)

--rabies.

Antwort 4 von rfb

Zitat:
Der ganze Scriptblock sollte sich nach Deinen Wünschen verhalten, wenn Du Ihn unterhalb des Formulars setzt.
ts ts ts.
Für sowas gibts doch den onload-Event, solcher Pfusch ist nicht nötig. Das Script ist eh schon problematisch durch die Nutzung globaler Variablen.

Aber zur Frage: so ganz ist mir nicht klar was diese Kaskade von Timeouts bewirken soll.
Um den Button einmalig erst nach 10s zu aktivieren würde ja ein
window.setTimeout
reichen. Wozu soll diese Vielfalt dienen?

Antwort 5 von rabies

Zitat:
ts ts ts.
Ja, ich weiß. Nicht schön. Aber dafür selten. Und es erfüllte den Zweck.

Asche auf mein Haupt. :D

Antwort 6 von Uesch

Kannst du mir sagen wie man ein window.setTimeout macht?

Gruß
,
Üsch

Antwort 7 von rfb

Der Sinn dieser Frage entzieht sich mir. Du verwendest in deinem Script diese Methode 11 mal!

Antwort 8 von rfb

nett wie ich bin kann ich dir ja mal schreiben wie ich dein geschildertes Problem lösen würde, wobei ich den Sinn deiner setTimeout-Kaskade aber immer noch nicht verstehe:

<script type="text/javascript">
function aendere_status(wie) {
var wo=document.sform.submitbtn;
if (wo) wo.disabled=wie;
}
window.onload=function () {
aendere_status(false);
window.setTimeout("aendere_status(true)",10000);
}
</script>


kurz, knapp, keine globalen Variablen, keine Scriptbereiche im body, Sicherheitsabfragen

Antwort 9 von rfb

oops, sorry, doppelte Verneinung übersehen, also

...
aendere_status(true);
window.setTimeout("aendere_status(false)",10000);

...

Antwort 10 von Uesch

ok, danke!

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: