首页 技术 正文
技术 2022年11月6日
0 收藏 381 点赞 635 浏览 6629 个字

要求如下:

写一个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();" rel="external nofollow" >添加数据</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>&nbsp<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>&nbsp<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>&nbsp<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>&nbsp<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();     } }

本人初学,学艺不精,如有错误,或不足指出,还望指出,感激不尽!!

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,040
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,526
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,373
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,154
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,787
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,869