【发布时间】:2013-02-14 19:11:10
【问题描述】:
我创建了一个以 iframe 为目标的表单以提交图像。我以前绝对有这个工作,但现在整个页面都提交了,而不仅仅是 iframe。我完全不知所措。
HTML:
<form id="upload-form" name="upload-form" class="" action="/handle/upload" method="post" enctype="multipart/form-data">
<div class="fileinput-wrap">
<label for="fileinput">Image input</label>
<input type="file" name="file" id="fileinput" />
</div>
<input type="submit" id="submitter" name="submitter" />
</form>
JS:
$("#fileinput").on('change', function () {
var $iframe = $("<iframe />").attr({
id: 'frame_uploader',
name: 'frame_uploader'
});
var $img = $("<img />");
var imageUrl = "";
$("#upload-form").prepend($img).append($iframe)
.attr('target', 'frame_uploader')
.trigger('submit');
$iframe.load(function () {
var imageUrl = $iframe.contents().find("body").text();
$img.attr('src', imageUrl);
});
});
【问题讨论】:
-
这绝对必须支持旧版本的IE,所以请不要HTML文件API建议。
-
hmm.. 您是否尝试将 iframe 放置在表单内部以外的其他位置?不确定它是否会有所作为。
-
@KevinB 是的,我确实尝试将它移到表单之外。没有帮助。不过还是谢谢。
-
您的 jsFiddle 示例似乎确实有效...
-
是的,我应该解释一下,它在 jsfiddle 中似乎工作正常,但在浏览器中,整个页面提交。
标签: jquery forms iframe upload