javascript - 访问 Javascript 中未定义的值

标签 javascript file-upload conditional-statements 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 的两种情况?

最佳答案

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

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

关于javascript - 访问 Javascript 中未定义的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39691210/

相关文章:

javascript - 正则表达式删除字符串中字符的开头到结尾

java - 如何从表单获取文件的数据?

javascript - 仅当字段值发生更改时激活 OnBeforeUnload

python - 使用 Pandas 进行切片和创建列表

javascript - 从 input.value 添加对象属性

javascript - 无法使用正则表达式获得值(value)

javascript - 使用React Native Onauth而不是函数对Firebase中的用户进行身份验证

jquery - 单击上一个后显示下一个上传按钮

php - 如何允许在不执行 PHP 文件的情况下将它们上传到服务器

php - Laravel 查询构建器条件与当前查询使用何时