2012-06-25 53 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()}这怎么办? –