Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果使用AjaxSubmit,jQuery AJAX进度条会卡住,赢得';没有它,我根本无法工作_Javascript_Php_Jquery - Fatal编程技术网

Javascript 如果使用AjaxSubmit,jQuery AJAX进度条会卡住,赢得';没有它,我根本无法工作

Javascript 如果使用AjaxSubmit,jQuery AJAX进度条会卡住,赢得';没有它,我根本无法工作,javascript,php,jquery,Javascript,Php,Jquery,首先,如果我遗漏了一些明显的东西,请提前道歉,我已经环顾了四周,只是无法理解这一点 我有一个提供进度条的上传表单,它基于本教程: 除了我尝试使用jQuery插件在灯箱中显示进度条外: 进度条会出现,但会停留在18%(处理的字节数:921420),而不管上传的文件大小如何(这对我来说没有任何意义)。 我检查了PHPINFO,它显示: 上传最大文件大小:4096K 贴子最大尺寸:4096K 如果我删除$('#fileUpload').ajaxSubmit();e、 预防默认值()行,然后出现进度条,

首先,如果我遗漏了一些明显的东西,请提前道歉,我已经环顾了四周,只是无法理解这一点

我有一个提供进度条的上传表单,它基于本教程:

除了我尝试使用jQuery插件在灯箱中显示进度条外:

进度条会出现,但会停留在18%(处理的字节数:921420),而不管上传的文件大小如何(这对我来说没有任何意义)。 我检查了PHPINFO,它显示:

上传最大文件大小:4096K

贴子最大尺寸:4096K

如果我删除$('#fileUpload').ajaxSubmit();e、 预防默认值()行,然后出现进度条,重复调用间隔,但从未调用getJSON,进度条未更新。然而,该文件可以完美地上传

javascript是:

<script>
var interval_id = 0;
$(document).ready(function(){
        //jquery form options
        var options = {success: stopProgress, error: stopProgress};

        //Add the submit handler to the form
        $('#fileUpload').submit(function(e){
                if($('#selectedFile').val() == ''){alert('File Not Found'); e.preventDefault();return;}//check there is at least one file

                    var html = $('<h2>Progress</h2><div class="progress progress-striped active"><div class="progress-bar progress" role="progressbar" aria-valuenow="85" aria-valuemin="0" aria-valuemax="100" id="progress"><span class="sr-only">50% Complete (success)</span>  </div></div><p id="progress-txt"></p>');

                    $.lightbox(html, {width   : 350,height  : 150});

                interval_id = setInterval(function() {                      //Poll the server for progress
                        $.getJSON('progress.php', function(data){
                                if(data){                                       //if there is some progress then update the status
                                        $('#progress').width((data.bytes_processed / data.content_length) * 100 + '%');
                                        $('#progress-txt').html('Uploading '+ Math.round((data.bytes_processed / data.content_length)*100) + '%');
                                }else{//When there is no data the upload is complete
                                        $('#progress').width('100%');
                                        $('#progress-txt').html('Complete');
                                        stopProgress();
                                }
                            })}, 300);

                $('#fileUpload').ajaxSubmit(); 
                e.preventDefault();
        }); 
});

function stopProgress(){clearInterval(interval_id);}
</script>

var间隔_id=0;
$(文档).ready(函数(){
//jquery表单选项
var options={success:stopProgress,error:stopProgress};
//将提交处理程序添加到表单中
$('#fileUpload')。提交(函数(e){
如果($('#selectedFile').val()=''){alert('File Not Found');e.preventDefault();return;}//检查至少有一个文件
var html=$('Progress50%完成(成功)

); $.lightbox(html,{宽:350,高:150}); interval\u id=setInterval(函数(){//轮询服务器以了解进度 $.getJSON('progress.php',函数(数据){ 如果(数据){//如果有一些进展,则更新状态 $(“#进度”).width((data.bytes_processed/data.content_length)*100+“%”); $('#progress txt').html('上传'+Math.round((data.bytes_processed/data.content_length)*100)+'%'); }else{//当没有数据时,上载完成 $(“#进度”).width('100%); $('#progress txt').html('Complete'); stopProgress(); } })}, 300); $('#fileUpload').ajaxSubmit(); e、 预防默认值(); }); }); 函数stopProgress(){clearInterval(interval_id);}
HTML表单为:

<form action="index.php" method="post" enctype="multipart/form-data" class="form-horizontal col-md-12" id="fileUpload">
<input type="file" class="form-control" placeholder="Select File" name="selectedFile" id="selectedFile" required />
<button type="submit">Save This Download</button>
</form

保存此下载

向所有花时间阅读本文的人道歉——我在表格中遗漏了一个隐藏的关键字段。我从头到尾又一次仔细研究了整件事,发现了它:


“value=”upload“/>

我希望能够在不使用“ajaxsubmit”和“preventDefault”的情况下让进度条正常工作,这样,如果JavaScript中出现意外问题或错误,它只会影响进度条,上传完成,页面刷新(有点优雅的降级):-)我假设ajaxSubmit正在阻止getJSON工作?