2012-06-25 3 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()}, как это можно сделать? –

Смежные вопросы