可通过 form.elements 获取表单内所有可提交控件,返回 htmlformcontrolscollection;支持按 name(如 form.elements.username)、索引(如 form.elements[0])或方括号访问,同名控件返回 nodelist。

可以通过 form.elements 获取表单内所有可提交的控件集合,它返回一个 HTMLFormControlsCollection(类数组对象),支持按名字、索引或属性名快速访问,比反复用 querySelector 更高效、语义更清晰。
按 name 属性直接取控件(最常用)
如果表单控件设置了 name 属性(必须有,否则不会出现在 elements 中),可直接用点号或方括号访问:
-
form.elements.username→ 获取<input name="username"> -
form.elements["email"]→ 获取<input name="email">(适合 name 含特殊字符或动态变量) - 多个同名控件(如复选框)会返回 NodeList,可用
form.elements.hobby[0]取第一个
按索引遍历所有控件
form.elements 支持数字索引和 .length,适合批量操作:
-
form.elements[0]获取第一个控件(如第一个input) for (let i = 0; i 遍历全部- 注意:只包含可提交元素(
input、select、textarea、button等),fieldset或div不在其中
用 namedItem() 安全获取(避免属性冲突)
当控件的 name 和 HTMLFormControlsCollection 自身属性(如 length、item)重名时,点号访问可能出错。此时用 namedItem() 更稳妥:
-
form.elements.namedItem("length")→ 明确取name="length"的控件 -
form.elements.namedItem("submit")→ 避免与表单原生submit方法冲突
配合 type 过滤或类型判断
拿到元素后,常需判断类型再处理:
if (form.elements.email.type === "email") { ... }-
if (form.elements.agree.checked) { ... }(针对 checkbox/radio) -
form.elements.city.value读取文本类值,form.elements.tags.selectedOptions读取多选下拉
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











