0

我的页面上有一个 ID 为 uploadtarget 的 iframe。

<iframe id="uploadTarget" name="uploadTarget" src="" ></iframe>

在我的 js 中,我将表单目标设置为 iframe

$('#myForm').submit(function() {
        this.target = 'uploadTarget';
        document.getElementById("uploadTarget").onload = uploadDone; 
    });

这在 IE7 和 8 中不起作用。

任何想法为什么?

4

1 回答 1

1

首先:您将 jQuery 与普通的 JavaScript 混合在一起。利用

$('#uploadTarget').load(uploadDone);

代替

document.getElementById("uploadTarget").onload = uploadDone; 

获得更整洁的代码。

第二:<form>我的猜测是,一旦提交表单 ,IE 就不允许您再更改目标。如果您中止提交,然后在更改后以编程方式重新提交表单,则target可能会起作用。

$('#myForm').submit(function(event) {
    if($(this).attr('target')!=='uploadTarget'){
       $(this).attr('target','uploadTarget');

       event.preventDefault();

       this.submit();//Now submit the form. This should call this function again.
    }else{
       $('#uploadTarget').load(uploadDone);
    }
});
于 2012-06-19T14:48:13.950 回答