首页 > 解决方案 > 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]?这是一个数组还是什么?如果它是一个数组,它没有在代码中的任何地方声明,但代码仍然有效

标签: javascriptjqueryformsweb

解决方案


表单元素有点奇怪,因为它类似于数组。它包含的表单控件使用与数​​组相同的基于零的索引添加到元素对象。这些控件也存储在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>


推荐阅读