javascript - JavaScript 表单上传文件
问题描述
我是网络开发的新手,我正在浏览某人的代码,因为有一个允许上传文件的表单。
onclick 表单调用函数send(this)
所以在js函数中是这样声明的
function send(form){
if(form[0]==null || form[0].files[0]==null){
return -1;
}
}
我不明白这是form[0]
什么form[0].files[0]
?代表什么[0]
?这是一个数组还是什么?如果它是一个数组,它没有在代码中的任何地方声明,但代码仍然有效
解决方案
表单元素有点奇怪,因为它类似于数组。它包含的表单控件使用与数组相同的基于零的索引添加到元素对象。这些控件也存储在form.elements
其中也是类似数组的。
那么对您的问题的简短回答是form[0]
表单中的第一个表单控件,在您的情况下似乎是文件输入。
元素访问器示例:
const form = document.querySelector('form');
console.log('"form.length" =', form.length)
console.log('"form[0]" =', form[0])
Array.from(form).forEach(el => console.log('"forEach el"', el))
console.log('"form[0]===form.elements[0]" =', form[0] === form.elements[0])
<form>
<input type="file" />
<input placeholder="Text input" />
<select></select>
</form>
推荐阅读
- c# - ASP Core Razor 页面在发布时更改 BindProperty 值
- git - 如何更改用于通过 SSH 接收 git-push 的 git 版本
- three.js - Three.js 将对象移动到相机前面
- c++ - 使用 cmake 集成 OpenCV - 无法打开共享对象文件
- asp.net-mvc - 将页脚行添加到 grid.mvc
- jquery - 为响应式导航菜单添加向下滑动效果
- swift - 未在视图中更新的结构数组
- docker - 为什么不能在自定义 SM 映像上运行 S3FS,因为 SM 不运行具有特权的 docker 映像
- sql - 我有一个带有 .CSV 文件的 SSIS 包,其中的数据是这样的
- xaml - 我在列表视图中的菜单项未显示 Xamarin