HTML DOM表单集合

HTML DOM表单集合

HTML DOM表单集合是通过JavaScript所创建的一组表单对象的集合,通过该集合我们可以对表单进行各种操作,例如获取用户输入数据、改变表单元素的属性值、向服务器发送表单数据等等。

在HTML DOM中使用form元素来表示表单,每一个form元素都有一个对应的JavaScript对象,通过该对象可以访问表单中所包含的所有表单元素,例如input、textarea、select等等。

访问表单集合

要想访问表单集合中的表单元素,我们首先需要获取表单对象。在HTML DOM中,我们可以通过getElementById()方法或者通过表单name属性来获取表单对象。

<form id="myForm">

<input type="text" name="username">

<input type="password" name="password">

</form>

<script>

// 通过getElementById()方法获取表单对象

var myForm = document.getElementById("myForm");

// 通过表单name属性获取表单对象

var myForm = document.forms["myForm"];

</script>

访问表单元素

通过访问表单对象,我们可以访问到表单中的所有元素,包括input、textarea、select等等。对于每一个表单元素,都有一个对应的JavaScript对象,我们可以通过该对象来访问和操作元素的属性以及方法。

<form id="myForm">

<input type="text" name="username">

<input type="password" name="password">

</form>

<script>

var myForm = document.getElementById("myForm");

// 获取表单中的第一个表单元素

var firstElement = myForm.elements[0];

// 获取表单中的指定名称的表单元素

var usernameElement = myForm.elements["username"];

// 访问表单元素的属性

var value = usernameElement.value;

usernameElement.disabled = true;

// 调用表单元素的方法

usernameElement.focus();

</script>

访问表单数据

在表单提交到服务器之前,我们可以通过JavaScript来获取用户在表单中输入的数据。通过访问表单元素的value属性,我们可以获取到用户在表单中输入的值。

<form id="myForm">

<input type="text" name="username">

<input type="password" name="password">

</form>

<script>

var myForm = document.getElementById("myForm");

// 获取表单中的数据

var username = myForm.elements["username"].value;

var password = myForm.elements["password"].value;

</script>

如果表单中有多个相同名称的输入框,例如多个复选框或单选按钮,那么我们可以通过遍历表单元素来获取选中的值。

<form id="myForm">

<input type="checkbox" name="hobby" value="1"> 篮球

<input type="checkbox" name="hobby" value="2"> 足球

<input type="checkbox" name="hobby" value="3"> 乒乓球

</form>

<script>

var myForm = document.getElementById("myForm");

// 获取选中的复选框

var hobbies = [];

var checkboxList = myForm.elements["hobby"];

for (var i = 0; i < checkboxList.length; i++) {

if (checkboxList[i].checked) {

hobbies.push(checkboxList[i].value);

}

}

</script>

添加和删除表单元素

在表单中,我们可以通过JavaScript来动态添加和删除表单元素,例如添加一组文本框或删除一组多选框。

<form id="myForm">

<div id="inputList">

<input type="text" name="input1">

</div>

<input type="button" value="添加" onclick=addInput()">

<input type="button" value="删除" onclick=deleteInput()">

</form>

<script>

var inputList = document.getElementById("inputList");

// 添加一个文本框

function addInput() {

var input = document.createElement("input");

input.type = "text";

input.name = "input2";

inputList.appendChild(input);

}

// 删除最后一个文本框

function deleteInput() {

var inputs = inputList.getElementsByTagName("input");

if (inputs.length > 1) {

inputList.removeChild(inputs[inputs.length - 1]);

}

}

</script>

表单验证

在提交表单数据到服务器之前,我们经常需要对用户输入数据进行验证,以确保数据的合法性。在HTML DOM中,我们可以通过表单元素的属性和事件来完成表单验证的功能。

例如,我们可以通过表单元素的required属性来标记输入框为必填项,如果用户未输入任何内容就提交表单,那么浏览器会给出相应的提示信息。另外,我们可以通过表单元素的onblur事件来对用户输入数据进行验证,例如验证用户输入的电子邮件地址是否符合规范。

<form id="myForm">

<input type="text" name="username" required>

<input type="email" name="email" onblur=checkEmail()">

<input type="submit" value="提交">

</form>

<script>

// 验证电子邮件地址

function checkEmail() {

var emailElement = document.getElementsByName("email")[0];

var email = emailElement.value;

var regExp = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+$/;

if (!regExp.test(email)) {

emailElement.style.border = "1px solid red";

alert("请输入正确的电子邮件地址!");

}

else {

emailElement.style.border = "";

}

}

</script>

在上面的例子中,我们通过正则表达式来验证电子邮件地址的格式,如果输入的电子邮件地址符合规范,那么边框将变为默认颜色,否则边框将变为红色,并弹窗提示用户输入正确的电子邮件地址。

表单提交

在表单填写完成后,我们可以通过JavaScript来提交表单数据到服务器。通过表单的submit()方法,我们可以在JavaScript中手动提交表单数据。

<form id="myForm" action="http://www.example.com" method="post">

<input type="text" name="username">

<input type="password" name="password">

<input type="submit" value="提交">

</form>

<script>

var myForm = document.getElementById("myForm");

// 表单提交

myForm.submit();

</script>

在上面的例子中,我们手动提交了一个表单,表单的action属性指定了表单提交的URL地址,method属性指定了提交表单使用的HTTP方法。在表单提交之前,浏览器会将表单中的数据打包成HTTP请求,发送到服务器。

表单重置

通过表单的reset()方法,我们可以在JavaScript中重置表单数据,将表单中的所有输入框的值重置为初始值。

<form id="myForm">

<input type="text" name="username">

<input type="password" name="password">

<input type="reset" value="重置">

</form>

<script>

var myForm = document.getElementById("myForm");

// 表单重置

myForm.reset();

</script>

当用户点击重置按钮时,表单中的所有输入框的值都将被重置为初始值。如果表单中有通过JavaScript动态添加的输入框,那么这些输入框的值也会被重置为初始值。

小结

在JavaScript中,我们可以通过HTML DOM表单集合来访问和操作表单中的各种元素,包括获取表单数据、添加和删除表单元素、表单验证、表单提交和表单重置等操作。通过HTML DOM表单集合,我们可以很方便地实现各种表单相关的功能,从而提高页面的交互性和用户体验。