jquery如何检测对文件输入元素的更改?

时间:2014-06-16 14:10:43

标签: javascript jquery html html5 file

我正在为Web应用程序构建图像上传功能,并使用以下事件处理程序:

$('input:file').change(function(){
    //handle input change
});

我发现如果我尝试将相同的图像上传两次,则不会调用处理程序,这是有道理的,因为从技术上讲,输入没有改变。但我想知道,为了触发变革需要做些什么?以下是我正在寻找的一些例子:

  • 更改文件名
  • 无论文件名如何,都会更改文件内容
  • 更改文件类型

其中哪一项会导致文件作为已更改的文件被接收?还是有其他场景吗?

1 个答案:

答案 0 :(得分:5)

<强> Refer this Link

输入类型 - 文件:

  

当内容发生变化时会触发onchange事件。如果   用户在Internet中键入路径(不使用“浏览”按钮)   资源管理器,然后仅在元素丢失时触发onchange事件   焦点。因此使用onpropertychange事件来检测   在Internet Explorer中修改。

<强> MSDN reference

  

当对象或选择内容发生变化时触发。

我的测试结果:

  1. 更改文件名:更改火灾。
  2. 更改内容:保持文件名相同,更改事件不会触发。
  3. 更改文件类型:保持文件名相同,更改触发。
  4. IE 9,10 中,如果您尝试更改文件名(在输入字段中),则会触发更改事件并清除文件名字段。
  5. 因此,故事的道德是,通过内容更改,它们意味着文件名更改。