2013-04-09 141 views
0

我正在使用twitter靴子,更具體地說是Jasny的文件上傳部件。jQuery和iFrame「ajax」圖片上傳器無法正常工作

http://jasny.github.io/bootstrap/javascript.html#fileupload

我要照顧老的瀏覽器所以我使用它與一個iframe上傳腳本一起給予錯覺一個Ajax上傳的用戶。

使用jQuery 1.9.1我的計劃是將文件輸入字段從主註冊表單克隆到提交給iframe的輔助表單中。這是在更改文件輸入時觸發的。

我有一個包含文本字段的表單和一個圖片上傳器。有問題的HTML看起來像這樣:

<div> 
    <span class="btn btn-file"> 
     <span class="fileupload-new">Select image</span> 
     <span class="fileupload-exists">Change</span> 
     <input type="file" name="avatar"/> 
    </span> 
    <a href="#" class="btn fileupload-exists" data-dismiss="fileupload">Remove</a> 
</div> 

我要複製的文件輸入「阿凡達」成另一種形式在頁面的底部,看起來像這樣:

<form id="upload_image" name="upload_image" enctype="multipart/form-data" method="post" action="/index.php/ajax/avatar/upload" target="upload_target"> 
    <!-- just an empty form really --> 
    <input id="sent" name="sent" type="submit" value="Upload" /> 
</form> 

我的JavaScript目前看起來是這樣的:

$("input[name='avatar']").on('change',function(){ 
     var $this = $(this); 
     $clone = $this.clone();   
     $this.after($clone).appendTo("form#upload_image"); 
     $("form#upload_image").submit(); 
}); 

第一次的圖像選擇要上傳的小工具的作品和腳本運行,但沒有圖像被傳遞到腳本。

隨後的嘗試,小部件不再更新,腳本不運行。

它似乎倒在行: $ this.after($ clone).appendTo(「form#upload_image」);

有沒有人有任何想法可能是什麼原因的問題?

非常感謝提前。

+0

它似乎是在js線上摔倒 - $ this.after($ clone).appendTo(「form#upload_image」); - 是否可以克隆文件輸入,並且在用戶選擇它之後是否是內容? – lunchboxbill 2013-04-10 12:56:17

回答

0

從我所瞭解的情況來看,出於安全原因,您無法用預先選定的值克隆文件輸入。我不得不用漂亮的iFrame提交/上傳。