【发布时间】:2014-09-19 01:47:33
【问题描述】:
我正在尝试将上传进度条合并到我的页面中。
我已经设法使用这种方法使进度条正常工作:
当用户点击上传文件时,进度条会显示上传的数量和完成时间。
但是,当用户随后提交表单时,文件似乎再次上传(chrome 在屏幕左下方显示文件上传信息)。
我怎样才能避免这种情况?另外,我怎样才能得到它,所以我没有上传文件按钮?
我想要的只是提交按钮,进度条显示进度,然后在上传完成后转到另一个页面(通过一些 php,它需要对 POST 信息做些什么)?
我的相关代码如下...
<form method="post" action="../../assets/php/actiontest.php" name='mainForm' enctype="multipart/form-data" OnSubmit="return CheckForm()">
<input type="text" name="Customer" placeholder="Customer" required/><br/>
<input type="file" name="file1" id="file1"><br/>
<input type="button" value="Upload File" onclick="uploadFile()" />
<progress id="progressBar" value="0" max="100" style="width:100%;"></progress>
<input type="submit" id="submit" />
</form>
<script type="text/javascript">
function _(el){
return document.getElementById(el);
}
function uploadFile(){
var file = _("file1").files[0];
var formdata = new FormData();
formdata.append("file1", file);
var ajax = new XMLHttpRequest();
ajax.upload.addEventListener("progress", progressHandler, false);
ajax.addEventListener("load", completeHandler, false);
//ajax.open("POST", "file_upload_parser.php");
ajax.open("POST", "../../assets/php/actiontest.php");
ajax.send(formdata);
}
function progressHandler(event){
var percent = (event.loaded / event.total) * 100;
_("progressBar").value = Math.round(percent);
}
function completeHandler(event){
_("progressBar").value = 0;
}
</script>
【问题讨论】:
-
你没有取消提交事件。
标签: javascript php jquery forms file-upload