【问题标题】:JavaScript Form uploading filesJavaScript 表单上传文件
【发布时间】:2021-06-30 06:14:33
【问题描述】:
我是 web 开发的新手,我正在查看某人的代码,因为有一个允许上传文件的表单。
点击表单调用函数send(this)
所以在js函数中是这样声明的
function send(form){
if(form[0]==null || form[0].files[0]==null){
return -1;
}
}
我不明白form[0] 和form[0].files[0] 是什么? [0] 代表什么?这是一个数组还是什么?如果它是一个数组,则它没有在代码中的任何地方声明,但代码仍在工作
【问题讨论】:
标签:
javascript
jquery
forms
web
【解决方案1】:
表单元素有点奇怪,因为它是类似数组的。它包含的表单控件使用与数组相同的基于零的索引添加到元素对象。这些控件也存储在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>