在Javascript中访问未定义的值

时间:2016-09-25 19:56:40

标签: javascript file-upload conditional undefined

我在解决这个问题上遇到了一些问题。

用户可以将图像上传到我表单中名为photo_id的变量。我将photo_id中的第一个文件对象发送到数据库以创建文件对象。

    if (photo_id) {
     var file=photo_id[0]
    //send to database and set id to new object created
    }

但是,有时,用户会单击文件上传按钮但不会添加文件。仍然会创建一个fileList对象并将其放入photo_id变量中,但它的长度为0,这使得它未定义。

enter image description here

在这种情况下,当我运行时:

 if (photo_id ) {
     var file=photo_id[0]
    ....
    }

我得到了

Cannot read property '0' of undefined

我需要检查以确保FileList长度大于0,但即使我这样做:

    if (photo_id[0].length >0) {
     var file=photo_id[0]
    //send to database and set id to new object created
    }

我收到错误:

cannot read length of undefined 

如何检查FileList存在且两个长度> 0的情况?

1 个答案:

答案 0 :(得分:2)

您正在检查第一个元素的长度,但没有第一个元素。使用:

if (photo_id && photo_id.length > 0) {...}