在這裏,我想在發送時間做timout,但setTimeout()不使用tout作爲超時參數。 如何解決。在setTimeout()中使用一個變量來設置時間
<script language="JavaScript" type="text/javascript">
var tout=10*1000;
var t = setTimeout(document.myform.submit(),tout));
</script>
在這裏,我想在發送時間做timout,但setTimeout()不使用tout作爲超時參數。 如何解決。在setTimeout()中使用一個變量來設置時間
<script language="JavaScript" type="text/javascript">
var tout=10*1000;
var t = setTimeout(document.myform.submit(),tout));
</script>
var tout = 10 * 1000;
var t = setTimeout(function() {
document.myform.submit();
}, tout);
閱讀關於如何正確使用here的setTimeout。第一個參數應該是一個函數引用,第二個超時以毫秒爲單位。
var delay = 60000;
var timer = setTimeout(function() {
document.myform.submit();
}, delay);
甚至更好
var delay = 10000,
f = document.myform,
timer = setTimeout(f.submit.bind(f), delay);
注:Function.prototype.bind
取決於ES5。
您遇到的問題是您在setTimeout行調用submit函數,並將調用它的結果傳遞給setTimeout。
你想要做的是傳遞一個參考的功能的setTimeout:
var t = setTimeout(document.myform.submit, tout));
不幸的是這並不非常適合,因爲提交功能不知道什麼樣的形式,它被稱爲上。您還需要綁定上下文:
var t = setTimeout(document.myform.submit.bind(document.myform), tout));
Function.prototype.bind返回對函數的引用。
[爲什麼這個setTimeout不工作]的可能重複(http://stackoverflow.com/questions/5116223/why-is-this-settimeout-not-working) –