我正在使用以下html开头表单代码:
<form id="uploadpic" method="post" target="uppic" name="upform" action="/cgi-bin/inpost.cgi" enctype="multipart/form-data">
尝试加载页面,但页面会在新标签页中打开。
我不认为这是问题的一部分,但我还是会包括这个。这是表单中的提交按钮代码:
<input name="filename" id="filename" type="file" onchange="submitFormAfterImageCheck();" />
这就是它所调用的功能:
function submitFormAfterImageCheck()
{
if(/(\.jpeg|\.jpg|\.JPG|\.gif|\.png|\.tiff)$/.test(document.getElementById("filename").value))
{
nogo = "go";
document.getElementById("uploadpic").submit();
$("#upload").html("<center>LOADING...</center>");
$('#link').hide();
$('#update_post').hide();
}
else
{
alert("You can only upload an image.");
}
}
iFrame代码:
<iframe id="uppic" name="uppic"></iframe>
为什么不提交iframe?
答案 0 :(得分:5)
我也面临同样的问题并找到了解决方法。
当您静态设置表单的target
属性时(正如您所做的那样),即使目标iframe
位于同一窗口中,也会在新选项卡/窗口中收到响应。 / p>
您可以使用javascript / jQuery动态设置target
form
属性来覆盖此内容。
的javascript:
document.getElementById(formId).target = iframeId;
jQuery的:
$("#formId").attr('target', iframeId);
希望这有帮助。
答案 1 :(得分:2)
如果你的DOM元素没有问题(正如@johndoe在他的回答中所说)你在使用Javascript设置目标时仍然遇到问题(正如@naren在他的回答中所说)那么这应该可以解决问题:
为您的iFrame指定名称属性,并将表单目标设置为该值:
<iframe name="myTarget"></iframe>
<form target="myTarget" method="post" ...></form>
答案 2 :(得分:-1)
DIV元素的位置似乎是个问题。虽然它被放置在表单标签中,但一旦提交表单,它就永远不会重定向。从表单标记中删除时,它重定向正常。