在调用函数时,如何延迟执行函数(beginUpload())?我尝试了函数delay(),但在提交表单后,函数仍然立即执行。我不希望函数在一个间隔内反复执行。我只是想延迟执行一段时间。有人有什么想法吗?
<form action="testing12345.php" target="progressFrame" method="post" id="uploadform" enctype="multipart/form-data" onsubmit="beginUpload().delay(8000);">
答案 0 :(得分:5)
将其从DOM中取出并使用setTimeout:
HTML:
<form action="testing12345.php" target="progressFrame" method="post" id="uploadform" enctype="multipart/form-data">
JQuery的:
$('#uploadForm').submit(function(event){
event.preventDefault(); // Prevent the actual form submission so the page remains.
var sub = setTimeout(function(){
beginUpload();
},8000);
});
答案 1 :(得分:3)
这应该可以解决问题:
setTimeout(beginUpload, 8000);return false;
您需要返回false才能停止浏览器提交表单。
答案 2 :(得分:1)
JavaScript setTimeout函数就是你所追求的。您可以在表单标签中调用它,例如
<form action="testing12345.php" target="progressFrame" method="post" id="uploadform" enctype="multipart/form-data" onsubmit="setTimeout(beginUpload(), 2000);">
其中2000 = 2秒
或者您可以在beginUpload方法中使用类似的方法
答案 3 :(得分:0)
.delay
不会阻止提交。
onsubmit="setTimeout(beginUpload, 8000), return false;"