jQuery:如果文件选择由文件输入以外的元素触发,则不会触发文件输入元素上的"更改"事件

Rud*_*tae 6 file-io jquery events internet-explorer

回覆:


上述问题涉及在进行文件选择后,使"更改"事件在浏览器中一致地触发.http://jsfiddle.net/7wR2L/上的示例证明了这一点已得到解决

我的情况有点不同.看来这个问题在另一个背景下变得丑陋.

基于设计约束,我必须使用非文件输入元素('a'标签)来触发文件输入元素上的"click"事件.到目前为止,我的测试看起来,当以这种方式选择文件时,文件输入无法触发"更改"通知.

请查看http://jsfiddle.net/rudylattae/7wR2L/8/上的示例

测试环境:

Windows Server 2008 R2

  • Chrome 7.0.517.44 - 通过
  • Firefox 3.6.9 - 失败
  • IE 8.0.7600.16385 64位 - 失败

Windows XP专业版(2002 - SP3)

  • Chrome 8.0.552.28测试版 - 通过
  • Firefox 3.5.14 - 失败(甚至不触发文件选择器)
  • IE 8.0.6001.18702 - 失败

Dr.*_*lle 7

使用MSIE,使用onpropertychange -Event,例如: http //jsfiddle.net/7wR2L/14/

由于jQuery不支持此事件,您必须在没有jquery的情况下分配它(内联或使用attachEvent)

在其他浏览器中尝试使用变异事件,也许他们会在那里工作.请参阅昨天关于变异事件的相关主题,以获得它们如何工作的一些示例:如何从firefox扩展中捕获页面标题的更改