SCRIPT5007:无法获取属性'0'的值:object为null或undefined

时间:2014-01-15 06:42:25

标签: javascript internet-explorer-9 liferay-6 portal

我正在上传一个portlet中的图片,并检查了图像的大小 - 如果大于5MB它应该显示警告但在IE(正好是IE9)它没有显示警告,但是给我一个错误 -

  

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

代码

<script type="text/javascript" >

function _ImageUploadService_WAR_ImageUploadServiceportlet_initEditor() {
//if you dont wnat the default text you can remove.

return '';
}

function submitForm() {

if( $("#_ImageUploadService_WAR_ImageUploadServiceportlet_Picture").val() == ""){
    alert("Please check, You have not Filled Required Field!!");
}else{
        var result = confirm("Are you Sure?");

        if (result == true) {
                document._ImageUploadService_WAR_ImageUploadServiceportlet_photoGallery.submit();
        } else {
            return false;
        }
}
}

function checkSize(e){
var val = document.getElementById(e);
var sizeInMB = (val.files[0].size / (1024*1024)).toFixed(2);
if(sizeInMB > 5){
    alert("Attachment Size Exceeds The Allowable Limit!!");
    $("#"+e).val("");
}
}

</script>

1 个答案:

答案 0 :(得分:0)

问题是Internet Explorer 9及更低版本不支持File API。如果File 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("");
    }
}