在您调度更改事件之后,错误发生在这里。
var maxSize = myFile.files[0].size;
第一次,当有一个文件时,它工作正常。
但在你设定好之后
myFile.value
到
null;
,
myFile.files
数组将变为空。但是,在调度更改事件后,您正试图访问它的第一个元素和第一个元素的大小,
myFile.dispatchEvent(new Event('change'))
.
您可以删除发送更改事件的行
或
在访问数组元素之前,请检查数组是否包含元素:
var myFile = document.getElementById('myFile');
myFile.addEventListener('change', function() {
if (myFile.files[0]){
var maxSize = myFile.files[0].size;
if(maxSize > 29000000) {
alert("The attachment you've selected with a file size of " + maxSize + " bytes exceeds the maxium size permitted");
myFile.value = null;
myFile.dispatchEvent(new Event('change'))
}
}
});