我正在尝试仅使用一个按钮作为输入文件,它在Firefox,Chrome,Safari中工作正常但在IE中却没有...我在提交表单时总是得到“拒绝访问”。
代码:
$('#input_file').click();
有真正的解决方法吗?我在谷歌上浪费了大约2个小时,但我找不到它。
答案 0 :(得分:2)
我找到了解决方法。 将按钮包裹在标签标签中,如下所示:
<label for="fileinput"><div class="button">Upload file</div></label>
<form>
<input id="fileinput" name="file" type="file">
</form>
单击标签将触发文件输入,而不会使Internet Explorer中的表单无效 (在IE9和IE10中测试)
编辑:将此代码提供给IE并保留其他浏览器的JavaScript解决方案。单击标签时,Firefox不会触发文件输入字段。
答案 1 :(得分:1)
我曾经看过这段代码,我不记得在哪里,但它是一种解决方法
if ($.browser.msie) {
// IE suspends timeouts until after the file dialog closes
$flUpload.click(function (event) {
setTimeout(function () {
changeFunc();
}, 0);
});
}
else {
// All other browsers behave
$flUpload.change(changeFunc);
}
答案 2 :(得分:0)
IE的安全沙箱“功能”。没有办法解决它。抱歉。我使用JQuery文件输入,但仍然要检测IE并使用IE基本输入,我花了很多时间寻找答案而没有找到任何答案。你可以使用flash,uploadify可以解决IE的安全问题。我推荐它,它是一个非常好的插件。