模拟点击<input type =“”文件“”/> jQuery,Opera

时间:2012-06-12 15:14:35

标签: jquery file file-upload opera

我的表格中没有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();
});

请解释一下,如何避免这种情况。

3 个答案:

答案 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>