2012-06-25 57 views
1

我有一個表單提交按鈕觸發一個函數。我們稱之爲myFunction()。提交後我需要禁用此功能30秒,但我需要提交按鈕才能繼續工作。我不想要禁用整個按鈕,只是它觸發的功能。 (如果用戶在30秒之前再次點擊按鈕,我需要再次提交,但不能再次執行myFunction)。我嘗試了一百萬種不同的東西,但無濟於事。我甚至不知道以哪個代碼發佈爲例。提交時暫時禁用功能

<FORM ID="myform"> 
    <INPUT ID="mysubmit" TYPE="SUBMIT" ONCLICK="myFunction();"> 
</FORM> 

什麼是使用JavaScript來做到這一點最簡單,最簡單的方法?

+2

好吧,如果提交表單重新加載頁面,那將是相當困難的。你能解釋一下情況嗎?也許有更好的方法來處理這個問題。 – Ryan

+0

不,表單動作是針對相鄰的幀。表單和提交按鈕始終可見並且永不重新加載。 –

回答

1

您是不是要找:

setTimeout(myFuction, 30000) // wait for 30 seconds and then call function 
1
<FORM ID="myform"> 
<INPUT ID="mysubmit" TYPE="SUBMIT" onClick="myFuction2();"> 
</FORM> 


function myFuction() { 
    ... 
} 

function myFuction2() { 
    toggleSubmit(); 
    setTimeout("toggleSubmit", 30000); 
    myFuction(); 
} 

function toggleSubmit() { 
    if (document.getElementById('mysubmit').onclick == null) { 
     document.getElementById('mysubmit').onclick = myFuction2; 
    } else { 
     document.getElementById('mysubmit').onclick = null; 
    } 
} 
+0

這不起作用。雖然給了我一些想法。我認爲最好的方法是設置一個時間戳或30秒計時器,然後按下按鈕時可以執行類似if(timer> 30){myFunction()}這怎麼辦? –