@Rudie,在这里 - 感谢您的代码!它在 IE 和 Chrome 中运行良好,但在 FireFox 中则不然。
我设法采用我的旧代码(适用于 FF 和 Chrome)并将您的代码合并为 MSIE。
在这里查看:
针对 IE、Chrome 和 Firefox 的修复
https://gist.github.com/4337047 https://gist.github.com/4337047
PROBLEM:当通过脚本化的强制 click() 事件打开文件输入时,IE 不会让您提交表单。
如果您通过自己的鼠标单击文件输入(我们不希望这样做),IE 将让您提交表单。
请注意,截至目前,如果文件输入字段通过脚本化“单击”事件发生更改,则 IE11 允许提交表单。
Solution(部分感谢 Rudie @ Stackoverflow,https://stackoverflow.com/users/247372/rudie https://stackoverflow.com/users/247372/rudie , http://hotblocks.nl/ http://hotblocks.nl/):
为 IE 中的输入制作标签。如果你点击它,它会强制点击输入字段 - 并且 IE 会接受这一点(愚蠢的 IE 认为用户点击了输入字段,哈哈)
因此,我们将在该标签中放置我们自己风格的 DIV。
下一个问题是,这在 FF 中不起作用。因此,我们进行了一个简单的(可能是令人讨厌的)浏览器检查,并根据浏览器我们将显示不同的按钮。
解决方案就在这里。测试于:
- 赢7x64
- 火狐浏览器 13.01
- 铬 23.0.1271.97 m
- 常规 IE9 模式下的 IE9
非常欢迎更多测试/添加代码!
EDIT:
去引用罗伊·麦肯齐
如果文件输入字段通过脚本化“单击”事件发生更改,IE11 现在允许提交表单。