jquery如何检测文件输入元素的变化
how does jquery detect a change to a file input element?
我正在构建一个图像上传功能到web应用程序,并使用以下事件处理程序:
$('input:file').change(function(){
//handle input change
});
我发现,如果我尝试两次上传相同的图像,则不会调用处理程序,这是有意义的,因为从技术上讲,输入没有改变。但我想知道,为了触发这种变化,需要发生什么?以下是我正在寻找的一些示例:
- 更改文件名
- 改变文件内容,不管文件名 文件类型更改
下列哪一项会导致文件被接收为已更改的文件?或者还有其他情况吗?
参考这个链接。
输入类型- File:
当内容发生变化时触发onchange事件。如果用户在Internet中键入路径(不使用Browse按钮)资源管理器中,则onchange事件仅在元素丢失时触发焦点。因此,使用onpropertychange事件来检测
MSDN参考
当对象或选择的内容发生变化时触发。
我的测试结果:
- 更改文件名:Change fires.
- 更改内容:保持文件名不变,更改事件不触发
- 更改文件类型:保持文件名不变,更改火焰。
- 在IE 9,10中,如果您尝试更改文件名(在输入字段中),则会触发更改事件并清除文件名字段。
这个故事的寓意是,内容的改变意味着文件名的改变
相关文章:
- 我想在选择输入文件上显示图像
- 触发IE9中的输入文件点击
- 将图像数据设置为输入文件标记
- Asp-mvc剃刀将输入文件的值存储在文本框中
- 选择同一文件时未触发HTML输入文件选择事件
- 从Javascript中的输入文件中获取文件名
- 输入文件和自动提交 - 播放框架 2.
- 将 FormData 对象放入数组中以从不同的输入文件上载文件
- 警报输入“文件”文件名,使用 jQuery 和“split”
- 检查是否对任何输入文件进行了更改
- 仅获取所选输入文件的名称
- 如何在Joomla模块中通过JavaScript发送输入文件类型
- Javascript将输入文件传递给PHP
- 触发AngularJS中的输入文件点击事件
- 输入文件:如何在刷新后显示文件名
- Angular 2-模型驱动的表单,带有输入文件(文件上传)
- 如何制作一个输入文件以供使用
- 将html输入文件元素从一个表单复制到另一个表单
- 如何在jquery中清除输入文件字段
- 在3个输入文件中加载img