Q&A
jqueryでajaxのformdataの送信をパーセンテージ化してプログレスバーを作ろうとしています
jquery
1var param = new Object(); 2var jdata = $.toJSON(param); 3 4$.ajax({ 5 xhr : function(){ 6 XHR = $.ajaxSettings.xhr(); 7 if(XHR.upload){ 8 XHR.upload.addEventListener('progress',function(e){ 9 var progre = parseInt(e.loaded/e.total*10000)/100 ; 10 console.log(progre+"%") ; 11 $('#progressBar').css("width",progre + "%"); 12 }, false); 13 } 14 return XHR; 15 } 16 ,url: url 17 ,type: 'POST' 18 ,data : {param:jdata} 19 20 21}).done(function(data, textStatus, jqXHR){ 22 console.log("ok"); 23 24}).fail(function(jqXHR, textStatus, errorThrown){ 25 alert("fail"); 26});
html
1<div id=loading class=loading> 2 <div class=progress-bar role=progressbar id=progressBar name=progressBar></div> 3</div>
このようにコードを書いてみたのですが、console.log(progre+"%") がいきなり100%になってしまいプログレスバーがうまく動きません
どうすればプログレスバーを左から右へと伸ばすにはどうすればよろしいですか
回答2件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。