2013-04-09 144 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提交/上传。