我的页面上有一个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。
任何想法为什么?
答案 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);
}
});