实现简单的信息录入系统:
方案一:简单实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<style>
tr {
width: 700px;
height: 60px;
}
td,
.input1 {
width: 120px;
height: 60px;
border: 1px solid black;
outline: none;
}
#inputbox {
height: 200px;
width: 250px;
}
.showbox {
width: 500px;
text-align: center;
}
.btn {
background-color: #fff;
border: 1px solid black;
margin-right: 20px;
}
.inp {
outline: none;
}
</style>
<div id="inputbox">
学号:<input class="inp" type="text"><br>
姓名:<input class="inp" type="text"><br>
年龄:<input class="inp" type="text"><br>
爱好:<input class="inp" type="text"><br>
地址:<input class="inp" type="text"><br>
<input type="submit" class="btn"><input type="reset" class="btn">
</div>
<div class="showbox">
<table id="tb" cellpadding="0" cellspacing="0">
<tr class="tfirst">
<td>学号</td>
<td>姓名</td>
<td>年龄</td>
<td>爱好</td>
<td>癖好</td>
<td>操作</td>
</tr>
</table>
</div>
<script>
//获取添加按钮的类名
var btn = document.getElementsByClassName('btn');
//重置按钮--清空填入信息
btn[1].onclick = function () {
var info = document.querySelectorAll('.inp');
info.forEach((el) => { el.value = '' })
}
//创建全选框、反选框
//创建第一行最后一个全选td到tfirst中
var tdall = document.createElement('td');
var tfirst = document.querySelector('.tfirst');
tfirst.appendChild(tdall);
tdall.classList.add('tdall');
//在tfirst中加入全选和反选的input框
var inputall = document.createElement('input');
inputall.classList.add('inputall');
tdall.innerHTML = '全选/反选'
tdall.appendChild(inputall);
inputall.type = 'checkbox';//全选
var inputnone = document.createElement('input');
inputnone.classList.add('inputnone');
tdall.appendChild(inputnone);
inputnone.type = 'checkbox';//反选
//添加按钮--把内容添加到表格中
btn[0].onclick = function () {
//点击添加一行到showbox:
var tb = document.querySelector('#tb tbody');
var tr = document.createElement('tr');
tb.appendChild(tr);
//获取表单div
var inputbox = document.querySelector('.inputbox');
//点击获取所有的input值
var info = document.querySelectorAll('.inp');
//遍历每个值,创建el个td元素,把td添加到tr中
info.forEach((el) => {
var td = document.createElement('td');
td.innerHTML = el.value;
tr.appendChild(td);
})
//创建最后一个td元素,添加到tr中
var tdlast = document.createElement('td');
tr.appendChild(tdlast);
//创建单个勾选框
//创建一个td,添加到tr中
var tdlast2 = document.createElement('td');
tdlast2.classList.add('tdlast2');
tr.appendChild(tdlast2);
// //添加一个input框在tdlast2中
var inputlast = document.createElement('input');
inputlast.classList.add('inputlast');
tdlast2.appendChild(inputlast);
//在inputlast中设置属性为checkbox或者radio
inputlast.type = 'checkbox';
// 给全选框绑定点击事件,当点击全选框时,每个单选框都自动被选中
inputall.onclick = function () {
var inputlastAll = document.querySelectorAll('.inputlast');
inputlastAll.forEach((el) => {
if (inputall.checked) {
el.checked = 'checked';
} else {
el.checked = '';
}
})
}
// 给反选框绑定点击事件,当点击反选框时,每个单选框都自动不被选中
inputnone.onclick = function () {
let inputlastAll = document.querySelectorAll('.inputlast');
inputlastAll.forEach((el) => {
console.log(el);
if (!inputnone.checked) {
el=inputlast;
} else {
el.checked = '';
}
})
}
//创建删除按钮,在网页中命名为删除,把其类名改为delbtn,放入最后一个td中
var delbtn = document.createElement('button');
delbtn.innerHTML = '删除';
delbtn.classList.add('delbtn');
tdlast.appendChild(delbtn);
//点击删除按钮,清空一行
delbtn.onclick = function () {
this.parentNode.parentNode.remove();//button->td->tr
}
//创建设置按钮,在网页中命名为修改,把其类名改为setbtn,放入最后一个td中
var setbtn = document.createElement('button');
setbtn.innerHTML = '修改';
setbtn.classList.add('setbtn');
tdlast.appendChild(setbtn);
//点击修改按钮,对此行可编辑
let flag = true;
setbtn.onclick = function () {
flag = !flag;
if (flag) {
console.log('open');
this.innerHTML = '修改';
//获取当前td的值,并且放到td中
let tdchange = this.parentNode.parentNode.children;
Array.from(tdchange).forEach((el, index) => {
if ((index == tdchange.length - 2) || (index == tdchange.length - 1)) { return }
el.innerHTML = el.children[0].value;
})
} else {
console.log('close');
this.innerHTML = '保存';
//把td的innerHTML替换成input
let tdchange = this.parentNode.parentNode.children;
Array.from(tdchange).forEach((el, index) => {
if ((index != tdchange.length - 1) && (index != tdchange.length - 2)) {
var text = el.innerHTML;
el.innerHTML = "";
var input1 = document.createElement("input");
input1.classList.add('input1');
input1.value = text;
el.appendChild(input1);
}
})
}
}
};
</script>
</body>
</html>
页面效果:
实现功能:
1、增加表单信息
2、修改表单
3、保存修改
4、信息重置
5、删除录入信息
6、全部勾选和反选
方案二(优化)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
body {
font-family: "楷体";
}
.wrapper {
width: 300px;
margin: 0 auto;
/* background-color: red; */
text-align: center;
color: blue;
}
.wrapper>div {
margin-top: 10px;
}
.info {
width: 100px;
outline: none;
border-radius: 5px;
border: 1px solid #ccc;
text-indent: 5px;
}
.btn {
width: 50px;
height: 25px;
border-radius: 5px;
border: 1px solid #ccc;
background-color: skyblue;
color: #000;
outline: none;
}
table {
width: 800px;
margin-top: 50px;
margin-left: -150px;
border: 1px solid #ccc;
}
td {
width: 20%;
}
th {
background-color: blue;
color: #fff;
}
td input {
width: 100px;
}
</style>
</head>
<body>
<div class="wrapper">
<div>学号:<input class="info" type="text"></div>
<div>姓名:<input class="info" type="text"></div>
<div>年龄:<input class="info" type="text"></div>
<div>爱好:<input class="info" type="text"></div>
<div>地址:<input class="info" type="text"></div>
<div>
<input type="submit" class="btn" value="添加">
<input type="reset" class="btn" value="重置">
</div>
<table>
<tr>
<th>学号</th>
<th>姓名</th>
<th>年龄</th>
<th>爱好</th>
<th>癖好</th>
<th>操作</th>
<th>
<label for="grad1">
全选<input type="radio" id="grad1" name="grad">
</label>
<label for="grad2">
反选<input type="radio" id="grad2" name="grad" >
</label>
</th>
</tr>
</table>
</div>
<script>
var grads=document.querySelectorAll("input[name='grad']")
console.log(grads,22222)
grads[0].onclick=function(){
var arr=document.querySelectorAll(".yewucheckbox")
arr.forEach((el)=>{
el.checked=true
})
}
grads[1].onclick=function(){
var arr=document.querySelectorAll(".yewucheckbox")
arr.forEach((el)=>{
el.checked=false
})
}
var btns = document.querySelectorAll(".btn")
//重置
btns[1].onclick = function() {
var infos = document.querySelectorAll(".info")
infos.forEach((el) => {
//el是每一个.info的输入框
el.value = ""
})
}
btns[0].onclick = function() {
//把全选和反选的√去掉
grads.forEach(el=>{
el.checked=false
})
//创建tr元素 添加到table中
var wrappertab = document.querySelector(".wrapper table")
var tr = document.createElement("tr")
wrappertab.appendChild(tr)
var infos = document.querySelectorAll(".info")
infos.forEach((el) => {
var td = document.createElement("td")
td.innerHTML = el.value
tr.appendChild(td)
})
var tdlast = document.createElement("td")
tr.appendChild(tdlast)
var xuanzetd = document.createElement("td")
tr.appendChild(xuanzetd)
var xuanzeinput=document.createElement("input")
xuanzeinput.type="checkbox"
xuanzeinput.className="yewucheckbox"
xuanzetd.appendChild(xuanzeinput)
// tdlast.innerHTML="666"
var delbtn = document.createElement("button")
delbtn.innerHTML = '删除'
delbtn.classList.add("btn")
tdlast.appendChild(delbtn)
delbtn.onclick = function() {
// console.log(this)
this.parentNode.parentNode.remove()
}
var setbtn = document.createElement("button")
setbtn.innerHTML = '修改'
setbtn.classList.add("btn")
tdlast.appendChild(setbtn)
let flag = true
setbtn.onclick = function() {
// console.log(this,111111)
flag = !flag
if (flag) {
console.log("开")
this.innerHTML = "修改"
//把当前这一排的 td内部的输入框的数据 value 获取了设置到td中
let tds = this.parentNode.parentNode.children
Array.from(tds).forEach((el, index) => {
if (index == tds.length - 1) {
return
}
el.innerHTML = el.children[0].value
})
} else {
console.log("关")
this.innerHTML = "保存"
//把当前这一排的 td的innerHTML 替换成input
// console.log(this.parentNode.parentNode,1111111111)
let tds = this.parentNode.parentNode.children
Array.from(tds).forEach((el, index) => {
if (index != tds.length - 1) {
var text = el.innerHTML
el.innerHTML = ""
var input1 = document.createElement("input")
input1.value = text
el.appendChild(input1)
}
})
}
}
}
</script>
</body>
</html>
实现效果:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<style>
tr
width: 700px;
height: 60px;
}
td,
.input1
width: 120px;
height: 60px;
border: 1px solid black;
outline: none;
}
#inputbox
height: 200px;
width: 250px;
}
.showbox
width: 500px;
text-align: center;
}
.btn
background-color: #fff;
border: 1px solid black;
margin-right: 20px;
}
.inp
outline: none;
}
</style>
<div id="inputbox">
<input class="inp" type="text"><br>
<input class="inp" type="text"><br>
<input class="inp" type="text"><br>
<input class="inp" type="text"><br>
<input class="inp" type="text"><br>
<input type="submit" class="btn"><input type="reset" class="btn">
</div>
<div class="showbox">
<table id="tb" cellpadding="0" cellspacing="0">
<tr class="tfirst">
<td>学号</td>
<td>姓名</td>
<td>年龄</td>
<td>爱好</td>
<td>癖好</td>
<td>操作</td>
</tr>
</table>
</div>
<script>
//获取添加按钮的类名
var btn = document.getElementsByClassName('btn');
//重置按钮--清空填入信息
btn[1].onclick = function
var info = document.querySelectorAll('.inp');
info.forEach((el) => { el.value = ''
}
//创建全选框、反选框
//创建第一行最后一个全选td到tfirst中
var tdall = document.createElement('td');
var tfirst = document.querySelector('.tfirst');
tfirst.appendChild(tdall);
tdall.classList.add('tdall');
//在tfirst中加入全选和反选的input框
var inputall = document.createElement('input');
inputall.classList.add('inputall');
tdall.innerHTML = '全选/反选'
tdall.appendChild(inputall);
inputall.type = 'checkbox';//全选
var inputnone = document.createElement('input');
inputnone.classList.add('inputnone');
tdall.appendChild(inputnone);
inputnone.type = 'checkbox';//反选
//添加按钮--把内容添加到表格中
btn[0].onclick = function
//点击添加一行到showbox:
var tb = document.querySelector('#tb tbody');
var tr = document.createElement('tr');
tb.appendChild(tr);
//获取表单div
var inputbox = document.querySelector('.inputbox');
//点击获取所有的input值
var info = document.querySelectorAll('.inp');
//遍历每个值,创建el个td元素,把td添加到tr中
info.forEach((el) =>
var td = document.createElement('td');
td.innerHTML = el.value;
tr.appendChild(td);
})
//创建最后一个td元素,添加到tr中
var tdlast = document.createElement('td');
tr.appendChild(tdlast);
//创建单个勾选框
//创建一个td,添加到tr中
var tdlast2 = document.createElement('td');
tdlast2.classList.add('tdlast2');
tr.appendChild(tdlast2);
// //添加一个input框在tdlast2中
var inputlast = document.createElement('input');
inputlast.classList.add('inputlast');
tdlast2.appendChild(inputlast);
//在inputlast中设置属性为checkbox或者radio
inputlast.type = 'checkbox';
// 给全选框绑定点击事件,当点击全选框时,每个单选框都自动被选中
inputall.onclick = function
var inputlastAll = document.querySelectorAll('.inputlast');
inputlastAll.forEach((el) =>
if (inputall.checked) {
el.checked = 'checked';
else
el.checked = '';
}
})
}
// 给反选框绑定点击事件,当点击反选框时,每个单选框都自动不被选中
inputnone.onclick = function
let inputlastAll = document.querySelectorAll('.inputlast');
inputlastAll.forEach((el) =>
console.log(el);
if (!inputnone.checked) {
el=inputlast;
else
el.checked = '';
}
})
}
//创建删除按钮,在网页中命名为删除,把其类名改为delbtn,放入最后一个td中
var delbtn = document.createElement('button');
delbtn.innerHTML = '删除';
delbtn.classList.add('delbtn');
tdlast.appendChild(delbtn);
//点击删除按钮,清空一行
delbtn.onclick = function
this.parentNode.parentNode.remove();//button->td->tr
}
//创建设置按钮,在网页中命名为修改,把其类名改为setbtn,放入最后一个td中
var setbtn = document.createElement('button');
setbtn.innerHTML = '修改';
setbtn.classList.add('setbtn');
tdlast.appendChild(setbtn);
//点击修改按钮,对此行可编辑
let flag = true;
setbtn.onclick = function
flag = !flag;
if (flag) {
console.log('open');
this.innerHTML = '修改';
//获取当前td的值,并且放到td中
let tdchange = this.parentNode.parentNode.children;
Array.from(tdchange).forEach((el, index) =>
if ((index == tdchange.length - 2) || (index == tdchange.length - 1)) { return
el.innerHTML = el.children[0].value;
})
else
console.log('close');
this.innerHTML = '保存';
//把td的innerHTML替换成input
let tdchange = this.parentNode.parentNode.children;
Array.from(tdchange).forEach((el, index) =>
if ((index != tdchange.length - 1) && (index != tdchange.length - 2)) {
var text = el.innerHTML;
el.innerHTML = "";
var input1 = document.createElement("input");
input1.classList.add('input1');
input1.value = text;
el.appendChild(input1);
}
})
}
}
};
</script>
</body>
</html>