我的表格中没有display none和输入类型文件,我也做了一个按钮。当你点击它应该打开下载对话框。此组合适用于除Opera之外的所有浏览器。如果删除display:none;
,则开始工作<form id="imageform" method="post" enctype="multipart/form-data" action='' style="display: none;">
<input type="file" name="photoimg" id="photoimg" />
</form>
<input type="button" id="upload" value="upload">
Jquery的:
$('#upload').on("click", function () {
$('#photoimg').click();
});
请解释一下,如何避免这种情况。
答案 0 :(得分:6)
如果您使用visibility: hidden
代替display:none
或者您可以尝试使用纯CSS。例如:
#photoimg {
left: -99999px
}
或
#photoimg {
z-index: -999
}
或
#photoimg {
width: 0px
}
或类似的东西
答案 1 :(得分:0)
阅读这篇文章。这是Opera的错误。 http://my.opera.com/community/forums/topic.dml?id=1054112
答案 2 :(得分:0)
您可以执行以下操作,而不是创建文件输入元素display: none
:
<div style="width:0;height:0;overflow:hidden;">
<form id="imageform" method="post" enctype="multipart/form-data" action="">
<input type="file" name="photoimg" id="photoimg" accept="image/*"
onchange="document.getElementById('imageform').submit();" />
</form>
</div>
<button id="upload" onclick="document.getElementById('photoimg').click();">
Upload</button>