JavaScript代码:
// 定义人员JSON
var person1 = {
"personno": "1",
"personname": "张三",
"personsex": "男",
"personage": 20,
"personfrom": "北京"
};
var person2 = {
"personno": "2",
"personname": "李四",
"personsex": "男",
"personage": 23,
"personfrom": "上海"
};
// 定义JSON数组
var persons = new Array;
persons.push(person1, person2);
// 建立索引,用于自动编号
var index = 2;
// 显示元素
function showForm(element) {
var e = document.getElementById(element);
e.style.display = "";
}
// 隐藏元素
function hiddenForm(element) {
var e = document.getElementById(element);
e.style.display = "none"
}
// 展示表格信息
function showTable() {
// 根据id获取表格
var maintable = document.getElementById("maintable");
var str = "序号 姓名 性别 年龄 籍贯 操作 ";
for (var i = 0; i < persons.length; i++) {
// 拼接人员信息
str += "" + persons[i].personno + " " + persons[i].personname + " " + persons[i].personsex +
" " +
persons[i].personage + " " + persons[i].personfrom +
" || ";
}
// 将拼接好的字符串添加到表格中
maintable.innerHTML = str;
showForm("maintable");
}
// 添加人员信息
function addPersonInfo() {
// 根据id获取添加表单
var addform = document.getElementById("addform");
// 每次使用了索引就需要自增
var addno = ++index;
var addname = addform.personname.value;
var addage = addform.personage.value;
var addsex = addform.personsex.value;
var addfrom = addform.personfrom.value;
// 用临时JSON对象保存信息
var person = {
"personno": addno,
"personname": addname,
"personsex": addsex,
"personage": addage,
"personfrom": addfrom
};
// 将JSON添加到数组
persons.push(person);
// 刷新一下,展示人员信息
showTable();
alert("添加成功!")
hiddenForm("addform")
}
// 删除人员信息
function deletePersonInfo(no) {
var res = confirm("确定要删除编号为" + no + "的记录嘛?")
if (res) {
// 找到要删除的元素进行删除
for (var i = 0; i < persons.length; i++) {
if (persons[i].personno == no) {
delete persons[i];
break;
}
}
// [1] [2] [3] 删除第2个元素
// [1] null [3] 这里有一个空值,因此personno接不到值,需要去空值
// 删除后需要去null值
// 方法一:替换法
var arr = new Array; // 新建一个数组
for (var i = 0; i < persons.length; i++) {
if (persons[i] != null) {
arr.push(persons[i]); // 将非空数组添加到新数组
}
}
persons = arr; // 把新数组的值替换给老数组
/*
// 方法二:splice(素组下标,个数,添加的值1,值2,...)方法
for (var i = 0; i < persons.length; i++) {
if (persons[i] == '' || persons[i] == null || typeof(persons[i]) == undefined) {
// splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
persons.splice(i, 1);
i = i - 1; // 配置已经缩短长度的数组
}
}
*/
// 刷新一下表格
showTable();
}
}
// 回显表单数据
function showUpdateForm(no) {
// 找到要更新的数据
for (var i = 0; i < persons.length; i++) {
if (persons[i].personno == no) {
// 将获取到的数据回显到表单
document.getElementById("updatepersonno").value = persons[i].personno;
document.getElementById("updatepersonname").value = persons[i].personname;
document.getElementById("updatepersonage").value = persons[i].personage;
document.getElementById("updatepersonsex").value = persons[i].personsex;
document.getElementById("updatepersonfrom").value = persons[i].personfrom;
// 显示updateform表单
document.getElementById("updateform").style.display = "";
}
}
}
// 更新人员信息
function updatePersonInfo() {
var updateform = document.getElementById("updateform");
var updateno = updateform.updatepersonno.value;
var updatename = updateform.updatepersonname.value;
var updatesex = updateform.updatepersonsex.value;
var updateage = updateform.updatepersonage.value;
var updatefrom = updateform.updatepersonfrom.value;
// 将输入的信息保存到临时JSON
var person = {
"personno": updateno,
"personname": updatename,
"personsex": updatesex,
"personage": updateage,
"personfrom": updatefrom
};
// 开始更新
for (var i = 0; i < persons.length; i++) {
if (persons[i].personno == person.personno) {
persons[i] = person;
// break;
}
}
// 刷新一下
showTable();
alert("更新成功!")
hiddenForm("updateform")
}
知识点:
方法一:
// [1] [2] [3] 删除第2个元素
// [1] null [3] 这里有一个空值,因此personno接不到值,需要去空值
// 删除后需要去null值
// 方法一:替换法
var arr = new Array; // 新建一个数组
for (var i = 0; i < persons.length; i++) {
if (persons[i] != null) {
arr.push(persons[i]); // 将非空数组添加到新数组
}
}
persons = arr; // 把新数组的值替换给老数组
方法二:
// 方法二:splice(素组下标,个数,添加的值1,值2,...)方法
for (var i = 0; i < persons.length; i++) {
if (persons[i] == '' || persons[i] == null || typeof(persons[i]) == undefined) {
// splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
persons.splice(i, 1);
i = i - 1; // 配置已经缩短长度的数组
}
}
语法:arrayObject.splice(index,howmany,item1,…,itemX)
splice() 方法可删除从index处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。如果从arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。
HTML代码:
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>人员管理系统title>
<script src="js/jsfunction.js" type="text/javascript" charset="utf-8">script>
head>
<body>
<div>
<button type="button" onclick="showTable();">显示人员信息button>
<button type="button" onclick="showForm('addform');">添加人员信息button>
div>
<hr />
<div>
<table id="maintable" border="1" cellspacing="0" cellpadding="0" style="display: none;">
table>
div>
<div>
<form id="addform" action="#" method="get" onsubmit="addPersonInfo();return false;" style="display:none;">
<fieldset>
<legend>添加人员信息legend>
<table>
<tr>
<td>名称:td>
<td><input type="text" id="personname" required="required" maxlength="32" />td>
tr>
<tr>
<td>年龄:td>
<td><input type="number" id="personage" required="required" min="0" max="100" step="1" />td>
tr>
<tr>
<td>性别:td>
<td><select id="personsex" required="required" >
<option value="null">---请选择---option>
<option value="男">男option>
<option value="女">女option>
select>td>
tr>
<tr>
<td>籍贯:td>
<td><input type="text" name="personfrom" id="personfrom" required="required" maxlength="64" />td>
tr>
<tr>
<td colspan="2" align="center">
<button type="submit">确定添加button>
<button type="reset" onclick="hiddenForm('addform')">取消添加button>
td>
tr>
table>
fieldset>
form>
div>
<div>
<form id="updateform" action="#" method="get" onsubmit="updatePersonInfo();return false;" style="display: none;">
<fieldset>
<legend>更新人员信息legend>
<input type="hidden" id="updatepersonno" />
<table>
<tr>
<td>名称:td>
<td><input type="text" id="updatepersonname" required="required" maxlength="32" />td>
tr>
<tr>
<td>年龄:td>
<td><input type="number" id="updatepersonage" required="required" min="0" max="100" step="1" />td>
tr>
<tr>
<td>性别:td>
<td><select id="updatepersonsex" required="required" >
<option value="null">---请选择---option>
<option value="男">男option>
<option value="女">女option>
select>td>
tr>
<tr>
<td>籍贯:td>
<td><input type="text" id="updatepersonfrom" required="required" maxlength="64" />td>
tr>
<tr>
<td colspan="2" align="center">
<button type="submit">确定更新button>
<button type="reset" onclick="hiddenForm('updateform')">取消更新button>
td>
tr>
table>
fieldset>
form>
div>
body>
html>
知识点:
<form>
<fieldset>
<legend>说明性文字legend>
fieldset>
from>
<form id="addform" action="#" method="get" onsubmit="addPersonInfo();return false;" style="display:none;">
<div style="display:none;">
div>
div>
// 显示元素
function showForm(element) {
// JS中先获取对象
var e = document.getElementById(element);
// 对象.style.display
e.style.display = "";
}
// 隐藏元素
function hiddenForm(element) {
var e = document.getElementById(element);
e.style.display = "none"
}
- 隐藏域
该标签不会在页面中展示,但document对象是能够获取和修改。
<input type="hidden" id="updatepersonno" />