返回
表单开发的四个步骤
前端
2023-09-10 09:38:36
说到表单,一般包含:数据的收集、检查、非法输入的界面交互和数据传递。本文简单介绍一下这几个部分以及开发中常用的处理方法。
数据的收集
一般我们会监听表单提交按钮的事件,事件处理函数里收集表单数据。大致有以下几种方法:
1. DOM 操作
利用原生 JavaScript 操作 DOM 获取表单数据,如:
const form = document.getElementById('form');
const formData = new FormData(form);
2. jQuery
使用 jQuery 获取表单数据,如:
const formData = $('#form').serialize();
3. 其他第三方库
如 lodash 等第三方库也可以实现表单数据的收集。
表单校验
表单校验一般包括两个方面:客户端校验和服务端校验。
1. 客户端校验
客户端校验是在用户提交表单之前进行的校验,主要用于检测用户输入的数据是否符合要求,如:
const form = document.getElementById('form');
form.addEventListener('submit', (event) => {
if (!form.checkValidity()) {
event.preventDefault();
event.stopPropagation();
}
});
2. 服务端校验
服务端校验是在服务器端进行的校验,主要用于检测客户端校验没有检测到的数据问题,如:
if (empty($_POST['username'])) {
$errors['username'] = '用户名不能为空';
}
非法输入的界面交互
当用户输入非法数据时,需要给予用户友好的提示,如:
const form = document.getElementById('form');
const usernameInput = document.getElementById('username');
usernameInput.addEventListener('input', (event) => {
if (usernameInput.value.length < 6) {
usernameInput.setCustomValidity('用户名长度必须大于6位');
} else {
usernameInput.setCustomValidity('');
}
});
数据传递
表单数据可以通过以下几种方式传递到服务器:
1. GET 请求
GET 请求将表单数据作为查询字符串附加到 URL 中,如:
<form action="submit.php" method="get">
<input type="text" name="username">
<input type="submit" value="提交">
</form>
2. POST 请求
POST 请求将表单数据作为请求体发送到服务器,如:
<form action="submit.php" method="post">
<input type="text" name="username">
<input type="submit" value="提交">
</form>
3. AJAX 请求
AJAX 请求可以实现异步提交表单数据,如:
const form = document.getElementById('form');
form.addEventListener('submit', (event) => {
event.preventDefault();
const formData = new FormData(form);
const xhr = new XMLHttpRequest();
xhr.open('POST', 'submit.php');
xhr.send(formData);
});
表单开发是一个相对简单但又重要的任务,掌握好表单开发的技巧可以帮助你快速构建出用户友好的表单。