<input type="file" id="excel-file" onchange="readExcel(this)" style="margin-left:9px">这个的onchange事件不能传相同名称但内容不同的文件会不触发该事件,因为浏览器缓存的问题,例如在每次选择文件时都更改input元素的value属性具体例子
时间: 2023-07-06 13:38:34 浏览: 81
定义input type=file 样式的方法
没问题,以下是一个具体例子:
```html
<input type="file" id="excel-file" onchange="readExcel(this)" style="margin-left:9px">
<script>
function readExcel(input) {
// 清空input元素的value属性
input.value = '';
// 设置新的文件名
input.value = 'new_file.xlsx';
// 处理文件内容
var file = input.files[0];
var reader = new FileReader();
reader.onload = function(e) {
var contents = e.target.result;
console.log(contents);
};
reader.readAsText(file);
}
</script>
```
在每次选择文件时,先将input元素的value属性置为空,然后再设置新的文件名,这样即使选择了相同名称但内容不同的文件,也能正确触发onchange事件,从而实现文件内容的处理。在这个例子中,使用了FileReader来读取文件内容,这是一种常用的方法。
阅读全文