IE中的文件输入行为

时间:2010-10-12 11:29:36

标签: css internet-explorer file-upload openfiledialog

我注意到chrome和IE在处理文件输入点击方面的行为有所不同。

jsFiddle示例here

在Chrome中,点击输入上的任意位置(文本或按钮位)会触发文件对话框。

在IE(测试7)中,您必须单击实际按钮,而不是文本位。

问题是我在常规文本框的顶部使用透明文件输入。单击文本框应打开对话框。在Chrome中,这可以正常工作,因为输入的总大小与文本框的大小相同。

在IE中它无法正常工作,因为用户需要点击透明文件输入的实际按钮部分。

如何解决这个问题?

由于

2 个答案:

答案 0 :(得分:3)

看看这些人是如何做到的:http://www.filamentgroup.com/lab/jquery_custom_file_input_book_designing_with_progressive_enhancement/

策略是相同的,将标准设置的自定义设计文件输入覆盖,让用户与标准文件进行交互。

他们写了一个小小的黑客来支持IE和Opera的点击,使用jQuery明确绑定点击事件。

请参阅:http://dwpe.googlecode.com/svn/trunk/fileinput/js/jQuery.fileinput.js(第52行)

答案 1 :(得分:1)

您需要找到一种方法来触发file输入框上的点击事件..

可能在底层文本框上添加一个单击处理程序,它将click事件发送到文件框。

示例:http://jsfiddle.net/MqbrV/

它不适用于Firefox(但默认操作应该足够)和Opera(,其中无效)。