我注意到chrome和IE在处理文件输入点击方面的行为有所不同。
jsFiddle示例here。
在Chrome中,点击输入上的任意位置(文本或按钮位)会触发文件对话框。
在IE(测试7)中,您必须单击实际按钮,而不是文本位。
问题是我在常规文本框的顶部使用透明文件输入。单击文本框应打开对话框。在Chrome中,这可以正常工作,因为输入的总大小与文本框的大小相同。
在IE中它无法正常工作,因为用户需要点击透明文件输入的实际按钮部分。
如何解决这个问题?
由于
答案 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事件发送到文件框。
它不适用于Firefox(但默认操作应该足够)和Opera(,其中无效)。