HTML 文件输入框不会触发文件选择事件并在更改事件 - angularJS 中警告
HTML File input box doesn't fire fileSelect event and caveat in onchange event - angularJS
我正在使用HTML文件类型控件来选择和上传文件(使用AngularJS)。我的标记如下:
<input id="uploadFile" accept=".csv" type="file" ng-file-select="model.onFileSelect($files)" onchange="angular.element(this).scope().fileNameChanged(this)">
因此,当我选择任何文件时,将触发文件名更改事件,而不是在文件选择上触发。到目前为止,这工作正常。但是,如果我选择要上传的相同文件,则不会触发 fileNameChanged 事件(因为我正在上传相同的文件),但我希望允许用户一次又一次地上传相同的文件。永远不会触发 onFileSelect 事件。
有什么方法可以解决这个问题吗?
终于让它工作了,在 HTML 中,我添加了 onclick JS 事件,如下所示:
<input id="uploadFile" onclick="myFunction();" accept=".csv" type="file" ng-file-select="model.onFileSelect($files)" onchange="angular.element(this).scope().fileNameChanged(this)">
function myFunction() {
//setting value of null of 0th index coz in my case i allow user to upload only single file.
//in case of multiple files, you gotta set value to null of the entire array of file list
//returned by the control
$('#uploadfile')[0].value = null;
return true;
}
这样,控件将不会缓存文件名,下次选择同一文件时,将触发 onChange 事件。
如果您仍然遇到任何问题,请告诉我。
感谢萨加尔
相关文章:
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 如何使用Node.js在JavaScript模块文件之间使用事件处理程序
- 通过将文件上载到ASHX处理程序来实现SSE(服务器发送的事件)
- 在javascript中导入xlsx文件时,如何手动强制javascript事件
- Dropzone最大文件大小超过事件
- 选择同一文件时未触发HTML输入文件选择事件
- 如何在 iPhone 上打开启用了 CSS 事件的 HTML 文件
- 如何在jQuery中处理输入类型=文件的onchange事件
- XHTML文件头部分中的事件驱动函数
- 触发AngularJS中的输入文件点击事件
- 如何调用另一个js文件中的函数或触发一个自定义事件,该事件将参数作为Jquery中的数据对象传递
- 根据文件类型取消绑定和重新绑定click事件处理程序
- 如何从加载的JSON文件构建外部事件列表
- 如何在jquery/JavaScript中打开浏览文件对话框时执行取消事件
- 从驱动器打开文件时未调用Onfileloaded事件
- JQuery多文件事件未激发
- 如何查找jquery或javascript事件从哪个文件发生
- 如何在javascript中从ondrop事件中获取文件URL
- 预加载音频文件/事件
- 两个组件在Angular2中干扰文件事件