可能重複:
jquery disable a button for a specific time限制按鈕點擊爲每5分鐘一次
我使用PHP創建一個網站。
在該網站上,我想要一個按鈕,用戶每五分鐘只能點擊一次。
我已經確定我將爲此腳本使用jQuery,並且我知道在用戶單擊該按鈕後需要將超時時間設置爲五分鐘。在此超時期間,該按鈕不應被點擊。
我應該使用什麼過程來啓用此功能?
問候
可能重複:
jquery disable a button for a specific time限制按鈕點擊爲每5分鐘一次
我使用PHP創建一個網站。
在該網站上,我想要一個按鈕,用戶每五分鐘只能點擊一次。
我已經確定我將爲此腳本使用jQuery,並且我知道在用戶單擊該按鈕後需要將超時時間設置爲五分鐘。在此超時期間,該按鈕不應被點擊。
我應該使用什麼過程來啓用此功能?
問候
希望這將幫助你
$('#button').attr("disabled", "disabled");
setTimeout('enableButton()', 5000);
function enableButton(){
$('#button').removeAttr('disabled');
}
你可以這樣來做。用戶可以點擊該按鈕,然後當他們這樣做時,該按鈕在接下來的5分鐘內被禁用。它被重新啓用,5分鐘後,下一次它被點擊,它再次禁用自身5分鐘,等...
$("#go").click(function() {
// no more clicks until timer expires
$(this).attr("disabled", "disabled");
// do whatever you want on the click here
// set timer to re-enable the button
setTimeout(function() {
$("#go").removeAttr("disabled");
}, 5 * 60 * 1000);
});
你可以看到它在這裏工作:http://jsfiddle.net/jfriend00/2scAM/。
觀看服務器端的時間可能也是一個好主意。 –
是的,如果你真的想要一個給定的用戶只能每五分鐘做一次,那麼它比客戶端的東西要多得多。這將需要用戶身份驗證和服務器端計時器與客戶端UI的協調。只有服務器可以真正強制執行此操作,因爲簡單的頁面刷新或在另一個瀏覽器中加載頁面會使按鈕再次可點擊。 – jfriend00
我測試過你的代碼,看起來不正確。 – user872148
試試這個
工作demo
$(function(){
$("#inputButton").click(buttonClickHanlder);
function buttonClickHanlder(){
//Do you stuff here
alert(this.id);
//Unbind the click event handler, delay 5 mins and then again bind the event handler
$("#inputButton").unbind('click').delay(5 * 60 * 1000).click(buttonClickHanlder);
};
});
這是什麼都做PHP呢?用戶可以編輯您的客戶端腳本並縮短時間限制。 – Cyclone
@rockerest - 這個問題與我列出的dup不同。這不是僅僅停用一段時間的按鈕。這是爲了每5分鐘只允許一次點擊。相關但不同的代碼來完成這個問題。 – jfriend00
@ jfriend00它的措辭不同,是的,但它顯然是一樣的意圖。 OP的目的是在按下按鈕五分鐘後禁用該按鈕,並且該解決方案有90%通過我發佈的問題回答。 – rockerest