IE7中的iframe作为表单上传目标?

时间:2012-06-19 14:39:26

标签: javascript html internet-explorer

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

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

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

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

这在IE7&amp; 8。

任何想法为什么?

1 个答案:

答案 0 :(得分:1)

首先:您正在将jQuery与普通JavaScript混合使用。使用

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

而不是

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

获得更简洁的代码。

第二的 我的猜测是,一旦提交表单,IE就不允许您更改<form>的目标。如果您中止提交,然后在更改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);
    }
});