我很难弄清楚这一点。我有一个表格。
<form id="form1" .. target="right" action="blablah">
<input .. />
<input type="submit" id="ycsubmit" onclick="..." value="Go!" />
</FORM>
我有一个需要在提交时执行的函数:ycClick();
执行 ycClick() 后,我需要将 onClick 切换为 null 30 秒,然后切换回来,这样如果在 30 秒后再次按下,它将再次执行 ycClick(),然后再禁用 30 秒,依此类推。我已经尝试了这 100 种不同的方法,但这就是我现在所拥有的:
function ycClick(){
...
}
var isEnabled = true;
function toggleSubmit() {
if (isEnabled = true) {
document.getElementById("ycsubmit").onclick = null;
} else {
document.getElementById("ycsubmit").onclick = timer();
}
//isEnabled = !isEnabled;
}
function timer(){
ycClick();
toggleSubmit();
setTimeout("toggleSubmit()", 30000);
}
然后我将 onclick 设置为触发 timer(); 照原样,这会触发 timer(),它会触发 ycClick(),然后将 onclick 切换为 null,但不会在 30 秒后将其切换回来。我怀疑它与这条线有关:
isEnabled = !isEnabled;
但删除没有任何区别,它的操作仍然完全相同。