2013-02-14 85 views
1

我創建了一個定位iframe以提交圖像的表單。我絕對有此工作,但現在整個頁面提交,而不是隻是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); 
    }); 
}); 

http://jsfiddle.net/NVp9K/

+0

這絕對要支持IE的老版本,所以沒有HTML File API的建議。 – 2013-02-14 19:13:05

+1

嗯..你有沒有嘗試將iframe放置在除表格之外的地方?不知道它是否有所作爲。 – 2013-02-14 19:15:11

+0

@KevinB是的,我確實嘗試將它移出窗體。沒有幫助。不過謝謝。 – 2013-02-14 19:26:03

回答

1

我讀的地方,某些iframe的名稱被保留。更改iframe的名稱已解決了問題。

+0

謝謝!謝謝!謝謝!這是一個真正的調試痛苦,與我的iframe稱爲「background_file_upload」相同的問題,將其更改爲「my_iframe」,瞧!有效。 – davur 2013-11-05 01:29:54

1

也許你應該在創建時添加frame id和name屬性。就像這樣:

var $iframe = $("<iframe id=\"frame_uploader\" name=\"frame_uploader\" />");