同时通过 JavaScript 实现表单验证和搜索功能等
时间: 2024-01-13 10:04:40 浏览: 108
好的,下面是一个参考实现,实现了表单验证和搜索功能:
```html
<!DOCTYPE html>
<html>
<head>
<title>快递手法系统</title>
<style>
form {
margin: 20px;
padding: 20px;
border: 1px solid black;
width: 400px;
display: inline-block;
vertical-align: top;
}
input[type=text] {
width: 100%;
padding: 12px 20px;
margin: 8px 0;
box-sizing: border-box;
border: 2px solid #ccc;
border-radius: 4px;
}
input[type=submit] {
background-color: #4CAF50;
color: white;
padding: 12px 20px;
border: none;
border-radius: 4px;
cursor: pointer;
float: right;
}
input[type=submit]:hover {
background-color: #45a049;
}
table {
border-collapse: collapse;
margin: 20px;
width: 600px;
}
th, td {
text-align: left;
padding: 8px;
border: 1px solid #ddd;
}
th {
background-color: #4CAF50;
color: white;
}
</style>
</head>
<body>
<h1>快递手法系统</h1>
<h2>录入快递信息</h2>
<form action="#" method="post" onsubmit="return validateForm()">
<label for="name">收件人姓名:</label>
<input type="text" id="name" name="name" placeholder="请输入收件人姓名"><br>
<label for="phone">收件人电话:</label>
<input type="text" id="phone" name="phone" placeholder="请输入收件人电话"><br>
<label for="address">收件人地址:</label>
<input type="text" id="address" name="address" placeholder="请输入收件人地址"><br>
<label for="company">快递公司:</label>
<input type="text" id="company" name="company" placeholder="请输入快递公司"><br>
<input type="submit" value="提交">
</form>
<h2>查询快递信息</h2>
<form action="#" method="get" onsubmit="return search()">
<label for="search">搜索:</label>
<input type="text" id="search" name="search" placeholder="请输入收件人姓名或电话"><br>
<input type="submit" value="查询">
</form>
<table id="table">
<thead>
<tr>
<th>ID</th>
<th>姓名</th>
<th>电话</th>
<th>地址</th>
<th>快递公司</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>张三</td>
<td>13512345678</td>
<td>北京市海淀区中关村大街1号</td>
<td>顺丰快递</td>
</tr>
<tr>
<td>2</td>
<td>李四</td>
<td>13612345678</td>
<td>上海市徐汇区漕河泾开发区</td>
<td>申通快递</td>
</tr>
<tr>
<td>3</td>
<td>王五</td>
<td>13712345678</td>
<td>广州市天河区天河路</td>
<td>圆通快递</td>
</tr>
</tbody>
</table>
<script>
// 表单验证函数
function validateForm() {
let name = document.getElementById("name").value;
let phone = document.getElementById("phone").value;
let address = document.getElementById("address").value;
let company = document.getElementById("company").value;
if (name == "" || phone == "" || address == "" || company == "") {
alert("所有字段都必须填写!");
return false;
}
if (phone.length != 11 || isNaN(phone)) {
alert("电话号码必须为11位数字!");
return false;
}
return true;
}
// 搜索函数
function search() {
let keyword = document.getElementById("search").value.toLowerCase();
let table = document.getElementById("table");
let rows = table.getElementsByTagName("tr");
for (let i = 1; i < rows.length; i++) {
let name = rows[i].getElementsByTagName("td")[1].innerText.toLowerCase();
let phone = rows[i].getElementsByTagName("td")[2].innerText.toLowerCase();
if (name.indexOf(keyword) == -1 && phone.indexOf(keyword) == -1) {
rows[i].style.display = "none";
} else {
rows[i].style.display = "";
}
}
return false;
}
</script>
</body>
</html>
```
该实现中,使用了两个JavaScript函数,一个用于表单验证,一个用于搜索。`validateForm()`函数用于在提交录入表单之前验证表单数据,如果有任何一个字段为空或电话号码不是11位数字,则弹出提示框并返回`false`,阻止表单提交;否则返回`true`,允许表单提交。
`search()`函数用于在提交查询表单之前搜索符合条件的快递信息,其中`keyword`变量保存了搜索关键字,将搜索关键字转换为小写字母,便于搜索时不区分大小写。通过遍历表格中的行,依次比较每行的姓名和电话字段是否包含搜索关键字,如果不包含则将该行的`display`属性设置为`none`,隐藏该行;否则将该行的`display`属性设置为空字符串,显示该行。
需要注意的是,该实现仅为演示用途,实际应用中还需要根据具体需求进行更加详细的开发和调试。
阅读全文