• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[SCRIPTSUCHE] Formular Submit Button mit Countdown

quadritati

New member
Hallo, als kleinen Spam-Schutz möchte ich für mein HTML/PHP Formular einrichten, dass der Absende-Button für X Sekunden nicht drückbar ist. Ich habe sehr viel gegooglet, aber tatsächlich kein richtiges Script gefunden. Ich war einmal ganz kurz davor, aber dieses Script unterstützte nur den type="button" und nicht type="submit". Ich bin übrigens noch ein Amateur im Programmieren, das sage ich jetzt, weil die Antworten, die ich sonst, bei Programmier-Foren bekomme, oft nicht leicht für mich zu verstehen sind :D

Danke und MfG.
 
Wenn du das nur auf der Clientseite (also im Browser mit JS) machst, hat das nur zur Folge, dass du deine Nutzer nervst. Einen wirklichen Spammer verlangsamst du damit nicht.

Du musst also auf dem Server auch noch eine Komponente laufen habe, die die Zeit misst und bei zu schnellem Abschicken die Daten verwirft. Was hast du denn Probiert? Bzw. wie sieht denn das aus, was du schon gefunden hast?
 
Es soll nicht vor Spam-Bots schützen, sondern von reellen Personnen, denen langweilig ist... Es ist genauergesagt ein Reservierungsformular für eine Schulveranstaltung und ich denke nicht dass es da zu Bot-Angriffen kommt ;)

Code:
<form name="Eingabe">
<input type="button" name="button1" value="noch 5 Sekunden" disabled onclick="window.alert('Was immer Du willst!');">
</form>
<Script Language="JavaScript">
function Buttontext(sek) {
if (sek>0) {
document.Eingabe.button1.value = "noch " + sek + " Sekunden";
} else {
document.Eingabe.button1.value = "Jetzt klicken";
document.Eingabe.button1.disabled = false;
}
}
window.setTimeout("Buttontext(4);", 1000);
window.setTimeout("Buttontext(3);", 2000);
window.setTimeout("Buttontext(2);", 3000);
window.setTimeout("Buttontext(1);", 4000);
window.setTimeout("Buttontext(0);", 5000);
</Script>
 
Wenn du nur das willst, reicht dein Script, das du hast, völlig aus (auch wenn es nicht gut geschrieben ist). Auch funktioniert das genauso mit einem <input type="submit">...

PS: das language-Attribut ist veraltet -> weg damit.
PPS: window.setTimeout() sollte man keinen String als Parameter übergeben, sondern eine Funktionsreferenz.
PPPS: die Zeitangaben für window.setTimeout() werden nicht wirklich genau eingehalten... ist bei dir aber auch nicht kritisch.
 
Code:
<input type="button" name="button1" value="noch 5 Sekunden" disabled onclick="window.alert('Was immer Du willst!');">

Ich hätte hierzu noch eine Frage:
muss es jetzt eigentlich nur
Code:
disabled
heißen oder
Code:
disabled="disabled"
 
Zurück
Oben