2017-01-31 3 views
0

ich eine Taste (für Fragen zu stellen) und Countdown-Timer (wo der Zeit = "2017.04.30 10.30.00), jetzt, was ich will, ist, wenn die Zeit erreicht = 0 automatisch deaktivieren eine Taste und wenn die Zeit> 0 ist, wird die Taste automatisch wieder aktiviertautomatisch/Deaktivieren eine Schaltfläche

Ich habe nur eine Variable zum Speichern von Datum var time = "2017/04/30". Ich denke, ständig auf die Zeit zu überprüfen ist die beste Option, um die Taste zu machen Aktivieren/Deaktivieren, aber ich weiß nicht, wie es geht.

+4

Fügen Sie Ihre entsprechenden Code bitte. –

+0

Und fügen Sie eine genauere Problembeschreibung, wie es auf diesen Code bezieht – charlietfl

+1

Ihr Countdown-Timer-Plugin muss einige Callback-Funktion wie die, die aufgerufen wird, wenn der Timer erreicht zu Ende oder Timer Tick Callback. Sie können sie verwenden, um den Status der Schaltfläche zu bestimmen. – vijayP

Antwort

0

Es ist keine gute Übung, dies in einem Front-End-Skript zu tun, da fast jeder mit einem grundlegenden JavaScript-Wissen die Schaltfläche wieder aktivieren kann, wenn ich time==0 gehe davon aus, dass du nicht willst.

Ich schlage vor, dies in seinem serverseitigen Code zu tun. Kurz und knapp:

  1. Überprüfen Sie den Zeitgeber beim Generieren der Seite, wenn der Zeitgeber deaktiviert ist, generieren Sie die deaktivierte Schaltfläche ohne Code, der das Klickereignis verarbeiten sollte.
  2. Überprüfen Sie den Zeitgeber bei der Verarbeitung der Anforderung, die durch Klicken auf die Schaltfläche ausgelöst wird, geben Sie 404 oder eine andere Fehlermeldung zurück, wenn der Zeitgeber deaktiviert ist.

, dass alle gesagt wird, wenn Sie „müssen“ diese schnelle schmutzige Art und Weise zu tun, Sie einfach eine setInterval oder setTimeout verwenden können:

//javascript 
// check timer every 200 ms 
var TICK = 200; 
var checkTimerTask = setInterval(function(){ 
    if (getTimer() == 0){ 
     document.getElementById('buttonId').disabled = true; 
    } else { 
     document.getElementById('buttonId').disabled = false; 
    } 
    // to stop checking uncomment the following line. 
    // clearInterval(checkTimerTask); 
}, TICK); 
+0

Vielen Dank, GRT Hilfe! – ben

+0

kleine Frage, warum rufen Sie Dokument am Ende der Datei, was macht das Dokument? Entschuldigung, ich bin ein Anfänger in js – ben

+0

+ Ben Um die aktuelle 'Dokument' Referenz als lokaler Parameter zu erfassen, um die Verwendung der 'globalen' 'Dokument'-Variable zu vermeiden. Ich entferne es, weil es Verwirrung verursacht, aber nicht direkt mit der Frage verbunden ist. – stupidlearner