Javascript SCRIPT5007:无法获取属性的值';0';:对象为null或未定义

Javascript SCRIPT5007:无法获取属性的值';0';:对象为null或未定义,javascript,internet-explorer-9,liferay-6,portal,Javascript,Internet Explorer 9,Liferay 6,Portal,我在portlet中上传图片,并检查了图片的大小-如果大于5MB,则应该显示警报,但在IE(确切地说是IE9)中,它不显示警报,并向我抛出错误- SCRIPT5007:无法获取属性“0”的值:对象为null或 未定义 代码 函数ImageUploadService_WAR_ImageUploadServiceportlet_initEditor(){ //如果您不使用默认文本,则可以删除。 返回“”; } 函数submitForm(){ if($(“#u ImageUploadService_

我在portlet中上传图片,并检查了图片的大小-如果大于5MB,则应该显示警报,但在IE(确切地说是IE9)中,它不显示警报,并向我抛出错误-

SCRIPT5007:无法获取属性“0”的值:对象为null或 未定义

代码


函数ImageUploadService_WAR_ImageUploadServiceportlet_initEditor(){
//如果您不使用默认文本,则可以删除。
返回“”;
}
函数submitForm(){
if($(“#u ImageUploadService_WAR_ImageUploadServiceportlet_Picture”).val()==“”){
警告(“请检查,您尚未填写必填字段!!”;
}否则{
var结果=确认(“您确定吗?”);
如果(结果==真){
文档。_ImageUploadService_WAR_ImageUploadServiceportlet_photoGallery.submit();
}否则{
返回false;
}
}
}
功能检查大小(e){
var val=document.getElementById(e);
var sizeInMB=(val.files[0].size/(1024*1024)).toFixed(2);
如果(sizeInMB>5){
警告(“附件大小超出允许的限制!!”;
$(“#”+e).val(“”);
}
}

问题在于Internet Explorer 9及以下版本不支持。如果文件API不可用,您可能应该跳过

试着这样做:

if(val.files) {
    var sizeInMB = (val.files[0].size / (1024*1024)).toFixed(2);

    if(sizeInMB > 5){
        alert("Attachment Size Exceeds The Allowable Limit!!");
        $("#"+e).val("");
    }
}

错误的行号是多少?对不起,忘了提这个。错误在-var sizeInMB=(val.files[0].size/(1024*1024)).toFixed(2)行上;您的
val
似乎是
null
未定义的
。不,它不是null。我在alert.Log
val.files
中放置了一个警报来检查val的值,该值显示[objectHTMLInputElement]。像这样
console.log(val.files)
if(val.files) {
    var sizeInMB = (val.files[0].size / (1024*1024)).toFixed(2);

    if(sizeInMB > 5){
        alert("Attachment Size Exceeds The Allowable Limit!!");
        $("#"+e).val("");
    }
}