使用 JavaScript 获取表单中的所有元素
Get all Elements in a Form using JavaScript
要获取表单中的所有元素:
- 选择表单元素。
- 使用该
elements
属性获取表单元素的集合。 - 或者,使用 方法将集合转换为数组
Array.from()
。
以下是本文示例的 HTML。
索引.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> </head> <body> <form id="my-form"> <input type="text" id="first_name" name="first_name" /> <input type="text" id="last_name" name="last_name" /> <textarea id="message" name="message" rows="5" cols="30"></textarea> <input type="submit" value="Submit" /> </form> <script src="index.js"></script> </body> </html>
这是相关的 JavaScript 代码。
索引.js
const form = document.getElementById('my-form'); // ✅ Get all form elements const formElements = Array.from(form.elements); formElements.forEach(element => { console.log(element); }); console.log('-----------------'); // ✅ Get only input elements in form const onlyInputs = document.querySelectorAll('#my-form input'); onlyInputs.forEach(input => { console.log(input); });
我们
使用方法选择了表单元素document.getElementById()
。
表单上的
elements
属性返回一个包含所有表单控件的集合。
该集合包括
input
元素、textarea
、元素等。 select
如果您需要对集合使用任何特定于数组的方法,请使用
Array.from
方法将其转换为数组。
我们传递给
forEach
方法的函数会针对数组中的每个元素进行调用。
在第二个示例中,我们使用
querySelectorAll
方法来仅选择input
表单中的元素。
索引.js
const onlyInputs = document.querySelectorAll('#my-form input'); onlyInputs.forEach(input => { console.log(input); });
该方法将包含有效 CSS 选择器的字符串作为参数,并返回
NodeList
包含匹配元素的 。您传递给querySelectorAll
方法的选择器可以根据需要指定。
以下示例仅选择表单内部带有of的input
元素。type
text
索引.js
const onlyInputs = document.querySelectorAll( '#my-form input[type="text"]' ); onlyInputs.forEach(input => { console.log(input); });
上面示例中的NodeList
不包含input
类型为 的元素submit
。