JS增删改HTML表格
要求如下:
写一个html页面,里面有一个表格,储存用户信息,包括:用户名,密码,姓名,邮箱,电话,qq,身份证号。
现在要通过js对表格进行动态的增删改查(只是内存操作即可):
首先,加载页面时用js加载3条初始化记录;
有一个增加记录的按钮,点击后弹出一个div层提供输入,要求各字段必须符合输入格式且不能为空:
用户名:英文+数字+下划线;
密码:英文+数字+下划线+6位以上;
姓名:中文;
邮箱,电话,qq,身份证号符合格式;
每条记录有修改、删除;
修改类似增加,要把原来值读出来;
HTML页面代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>js增删改 v1.0</title>
<script src="js/test.js" type="text/javascript" charset="utf-8"></script>
</head>
<body >
<center>
<br/><br/>
<h2>js增删改 v1.0</h2>
<br/><br/>
<a href="javascript:showAddInput();">添加数据</a>
<br/><br/>
<div class="table" >
<table border="1" style="text-align:center" id="table">
<tr>
<th>用户名</th>
<th>密码</th>
<th>姓名</th>
<th>邮箱</th>
<th>电话</th>
<th>qq</th>
<th>身份证号</th>
<th>操作</th>
</tr>
<tr>
<td>A1</td>
<td>123</td>
<td>a</td>
<td>a@qq.com</td>
<td>123456789</td>
<td>40040044</td>
<td>270205197405213513</td>
<td><a style="color:blue;cursor:pointer;" onclick="updateRow(this);" >修改<a> <a style="color:blue;cursor:pointer;" onclick="delRow(this);">删除</a></td>
</tr>
<tr>
<td>A2</td>
<td>456</td>
<td>b</td>
<td>b@qq.com</td>
<td>987654321</td>
<td>30030033</td>
<td>470205197405213513 </td>
<td><a style="color:blue;cursor:pointer;" onclick="updateRow(this);">修改<a> <a style="color:blue;cursor:pointer;" onclick="delRow(this);">删除</a></td>
</tr>
<tr>
<td>A3</td>
<td>789</td>
<td>c</td>
<td>c@qq.com</td>
<td>800800820</td>
<td>30030030</td>
<td>570205197405213513 </td>
<td><a style="color:blue;cursor:pointer;" onclick="updateRow(this);">修改<a> <a style="color:blue;cursor:pointer;" onclick="delRow(this);">删除</a></td>
</tr>
</table>
</div>
<div style="display:none" id="addinfo">
<form>
<br>
用户名:(用户名只能用英文+数字或下划线)<br><input type="text" id="username" /><br><!--限制用户名只能用英文 下划线 或数字-->
密码:(英文+数字或下划线,长度不小于6)<br><input type="text" id="password"/><br>
姓名:(只能是汉字)<br><input type="text" id="name"/><br>
邮箱:<br><input type="text" id="email"/><br>
电话:<br><input type="text" id="phone"/><br>
qq:<br><input type="text" id="qq"/><br>
身份证:<br><input type="text" id="uid"/><br><br>
<input type="button" value="提交" onclick="addInfo()" id="btn_add">
<input type="button" value="提交" onclick="updateInfo()" style="display:none" id="btn_update">
<input type="button" value="取消" onclick="hideAddInput()">
</form>
</div>
</center>
</body>
</html>
JS如下:
var row = 0 ; //定义全局行数用于修改
var reg_email = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/; //用于判断邮箱格式
var reg_name = /^((\w*\d\w*[a-z]\w*)|(\w*[a-z]\w*\d\w*))$/i; //用于判断用户名格式
var reg_chinese = /^[\u0391-\uFFE5]+$/ ; //用于判断姓名格式
var reg_pass = /^((\w*\d\w*[a-z]\w*)|(\w*[a-z]\w*\d\w*))$/i;//用于判断密码格式
//----获取行号-----
function getRow(r){
var i=r.parentNode.parentNode.rowIndex;
return i ;
}
//----获取行号-----
//----删除某一行-----
function delRow(r){
document.getElementById('table').deleteRow(getRow(r));
}
//----删除某一行-----
//----清除添加信息框的内容-----
function cleanAddInput(){
document.getElementById('username').value='';
document.getElementById('password').value='';
document.getElementById('name').value='';
document.getElementById('email').value='';
document.getElementById('phone').value='';
document.getElementById('qq').value='';
document.getElementById('uid').value='';
}
//----清除添加信息框的内容-----
//----显示添加信息框-----
function showAddInput(){
document.getElementById('addinfo').style="display:block-inline" ;
document.getElementById('btn_add').style="display:block-inline" ;
document.getElementById('btn_update').style="display:none" ;
cleanAddInput();
}
//----显示添加信息框-----
//----隐藏添加信息框-----
function hideAddInput(){
document.getElementById('addinfo').style="display:none" ;
}
//----隐藏添加信息框-----
//----判断输入框的信息是否符合要求-----
function judge(){
//根据id获取表单信息
var username = document.getElementById('username').value;
var password = document.getElementById('password').value;
var name = document.getElementById('name').value;
var email = document.getElementById('email').value;
var phone = document.getElementById('phone').value;
var qq = document.getElementById('qq').value;
var uid = document.getElementById('uid').value;
var judge = true ; //用于判断表单信息是否符合
if(username==''){
judge = false ;
alert('请输入用户名');
}else if(password==''){
judge = false ;
alert('请输入密码');
}else if(name==''){
judge = false ;
alert('请输入姓名');
}else if(email==''){
judge = false ;
alert('请输入邮箱');
}else if(phone==''){
judge = false ;
alert('请输入电话');
}else if(qq==''){
judge = false ;
alert('请输入qq');
}else if(uid==''){
judge = false ;
alert('请输入身份证');
}else if(uid.length!=18){
judge = false ;
alert('身份证应为18位,请正确填写');
}else if(qq.length<=5 &&qq.length>=13){
judge = false ;
alert('请正确输入qq号码');
}else if(phone.length<3&&qq.length>12){
judge = false ;
alert('请正确输入电话');
}else if(!reg_email.test(email)){
judge = false ;
alert('邮箱格式不正确');
}else if(!reg_name.test(username)){
judge = false ;
alert('用户名格式不正确');
}else if(!reg_chinese.test(name)){
judge = false ;
alert('姓名格式不正确');
}else if((!reg_pass.test(password))||password.length<6){
judge = false ;
alert('密码格式不正确');
}
return judge ;
}
//----判断输入框的信息是否符合要求-----
//----新增信息的插入方法-----
function insertInfo(){
//根据id获取表单信息
var arr = new Array();
arr[0] = document.getElementById('username').value;
arr[1] = document.getElementById('password').value;
arr[2] = document.getElementById('name').value;
arr[3] = document.getElementById('email').value;
arr[4] = document.getElementById('phone').value;
arr[5] = document.getElementById('qq').value;
arr[6] = document.getElementById('uid').value;
arr[7] ="<a style='text-align:center;color:blue;cursor:pointer;' onclick='updateRow(this);'>修改</a> <a style='text-align:center;color:blue;cursor:pointer;' onclick='delRow(this);'>删除</a>";
var x = document.getElementById('table').insertRow(1); //获取第一行对象
for(var i=0;i<arr.length;i++){
x.insertCell(i).innerHTML = arr[i] ; //用循环把每个数据插入第一行的每一列
}
}
//----新增信息的插入方法-----
//----新增信息-----
function addInfo(){
if(judge()==true){
alert('添加成功');
insertInfo(); //执行插入
hideAddInput(); //隐藏添加信息框
}else{
alert('添加失败');
}
}
//----新增信息-----
//----根据行号修改信息-----
function updateRow(r){
row = getRow(r); //把该行号赋值给全局变量
showAddInput(); //显示修改表单
//提交按钮替换
document.getElementById('btn_add').style="display:none" ;
document.getElementById('btn_update').style="display:block-inline" ;
insertInputFromQuery(queryInfoByRow(row));
}
//----根据行号修改信息-----
//----根据行号查信息----
function queryInfoByRow(r){
var arr = new Array();
for(var m=0 ; m<7;m++){
arr[m] = document.getElementById('table').rows[row].cells[m].innerText;
}
return arr ; //返回该行数据
}
//----根据行号查信息----
//----把查询到的信息放入修改的表单里----
function insertInputFromQuery(arr){
document.getElementById('username').value = arr[0];
document.getElementById('password').value = arr[1];
document.getElementById('name').value = arr[2];
document.getElementById('email').value = arr[3];
document.getElementById('phone').value = arr[4];
document.getElementById('qq').value = arr[5];
document.getElementById('uid').value = arr[6];
}
//----把查询到的信息放入修改的表单里----
function updateInfo(){
if(judge()==true){
alert('修改成功');
document.getElementById('table').deleteRow(row);//删除原来那行
insertInfo(); //插入修改后的值
hideAddInput(); //隐藏添加模块
}else{
alert('修改失败');
hideAddInput();
}
}
本人初学,学艺不精,如有错误,或不足指出,还望指出,感激不尽!!
JS增删改HTML表格的更多相关文章
- jQuery动态增删改查表格信息,可左键/右键提示
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js 增删改查
<html><head lang="en"> <meta charset="UTF-8"> <title>< ...
- JS 增删改查操作XML
效果图: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...
- js 增删改查方法
push() 向数组的末尾添加一个或多个元素 pop() 删除数组内部并返回数组的最后一个元素 shift() 把数组内部的第一个元素从其中删除,并返回第一个元素的值 unshift() 向数组外部的 ...
- JS增删改查localStorage实现搜索历史功能
<script type="text/javascript"> var referrerPath = "@ViewBag.ReferrerPath" ...
- webpack4+express+mongodb+vue 实现增删改查
在讲解之前,我们先来看看效果如下所示: 1)整个页面的效果如下: 2) 新增数据效果如下: 3) 新增成功如下: 4) 编辑数据效果如下: 5) 编辑成功效果如下: 6) 删除数据效果如下: 7) 删 ...
- JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能
JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能 html <table id="productDg"></table> &l ...
- jQuery EasyUI/TopJUI实现数据表格的增删改查功能(不写js,纯HTML实现!!!)
jQuery EasyUI/TopJUI实现数据表格的增删改查功能(不写js,纯HTML实现!!!) 废话不多说,直接贴上代码 <table id="configEdatagrid&q ...
- javascript生成表格增删改查 JavaScript动态改变表格单元格内容 动态生成表格 JS获取表格任意单元格 javascript如何动态删除表格某一行
jsp页面表格布局Html代码 <body onload="show()"> <center> <input type="text" ...
随机推荐
- MapReduce原理及其主要实现平台分析
原文:http://www.infotech.ac.cn/article/2012/1003-3513-28-2-60.html MapReduce原理及其主要实现平台分析 亢丽芸, 王效岳, 白如江 ...
- 基于jQuery的图片相册滑出放大插件
今天给大家带来一款基于jQuery的图片相册滑出放大插件.点击相册图片,展示该图片.该插件适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗..效 ...
- jquery冲突
今天修改一个项目发现,前辈们自己写的一些方法和jquery冲突了,也就是$的冲突,以至于自己用jquery编写的新功能无法正常使用,细究后发现解决办法如下:使用 noConflict() 方法为 jQ ...
- discuz(dz) SSO(单点,同歩,异步)登录 --转
原文地址:http://fc-lamp.blog.163.com/blog/static/1745666872012762520123/ discuz(dz) SSO(单点,同歩,异步)登录 一般流 ...
- GridView格式化
<asp:TemplateColumn HeaderText="进出境运输方式"> <ItemTemplate> <%# Eval(" ...
- Remoting
一. Remoting基础 什么是Remoting,简而言之,我们可以将其看作是一种分布式处理方式.从微软的产品角度来看,可以说Remoting就是DCOM的一种升级,它改善了很多功能,并极 ...
- IOS 如何成为开发者&购买开发者账号 感想
1.申请apple id 要注意 选择你在的国家 比如 China就会在右下角的页面出校圆圈的中国国旗,不然他们会说“无法接收你的请求”.我苦恼了半天,最后我重新申请apple ID 操作的,因为 ...
- IOS 关于ipad iphone5s崩溃 解决
之前 我这一直没有以上两款测试机 于是发布被退回了.说是这两款 开启动就崩. 这种情况下 解决办法只有一个,就是bug重现,不然,你根本无法确定再一次提交是否是安全的.所以我借了一台 iPad mi ...
- Android 高级UI设计笔记13:Gallery(画廊控件)之 循环显示图像
1. 循环显示图像的原理 循环显示有些类似于循环链表,最后一个结点的下一个结点又是第1个结点.循环显示图像也可以模拟这一点. 也许细心的读者从上一节实现的ImageAdapter类中会发现些什么.对 ...
- 【开源项目7】Android视图注入库:butterknife
介绍 ButterKnife通过@InjectView和视图的ID注解的变量去找到并自动转换为你布局上相应的布局视图. class ExampleActivity extends Activity { ...