【发布时间】:2012-12-20 09:46:19
【问题描述】:
我正在尝试使用照片提交表单。在用户加载他按下提交按钮的照片后,我希望表单暂停 10 秒,为这 10 秒制作一个进度条动画然后提交表单,你们能说我做错了什么吗,似乎没有10 秒后提交表单。 代码如下:
HTML:
<form action="uploadpic.php" method="post" id="upload_form">
<input type="text" name="title" id="title">
<p id="title_p">Title</p>
<hr />
<input type="text" name="theme" id="picture_theme" size="40"/>
<p id="theme">Picture Theme<img src="../simages/info.gif" id="info" width="12" height="12" style="margin-left:10px;"></p>
<hr />
<div class="custom-upload">
<input type="file" name="picture" id="true_pic" />
<div class="fake-file">
<input disabled="disabled" >
</div>
</div>
<p id="upload_pic">Upload picture</p>
<input type="submit" name="submit" id="submit" value="Upload" />
</form>
JAVASCRIPT:
form = document.getElementById("upload_form");
size=1;
form.onsubmit = function()
{
if (size < 10)
{
setTimeout(delayedSubmit,1000);
}
return false;
}
function delayedSubmit() {
size++;
if (size<5)
{
setTimeout(delayedSubmit,1000);
alert("Counting "+size);
}
else
{
alert("Form submitted");
form.submit();
}
}
PHP:
<?php
if ($_POST['submit'])
{
$title = $_POST['title'];
$theme = $_POST['picture_theme'];
echo $title," ",$theme;
}
?>
我可以判断表单不会提交任何东西,因为 php 变量不会显示任何东西,然后页面不会加载。
【问题讨论】:
-
在提交表单之前输入
console.log(form),它会显示什么? -
确保在 DOM 完全加载后分配变量
form。 -
错了。如果未正确分配
form,则计时器首先不会运行(我假设该部分正在工作,对吗?)。因此,在您启动计时器后,似乎有些东西正在重新分配form。您应该在闭包变量中捕获它。
标签: php javascript html form-submit