使用jquery实现用户信息的增删改查

目的:

此案例使用jquery实现对用户信息的增删改查操作,主要用来熟悉一下jquery对象的方法。

步骤:

首先,创建一个静态的用户表单,用来显示提交的数据,如下图所示:
在这里插入图片描述
可以看出添加了六个属性,分别为Merchart Name、Merchart Code、Total Number、Start Time、end Time、以及state,此外具有增加信息,搜索,全选,批量删除、删除和编辑操作,亲们,也可根据自己的需求自行添加,页面布局完整代码如下:(复制即可使用)
注意:其中页面布局是依赖于bootstarp框架的,在使用时注意改变引用路径。

<!DOCTYPE html>
<html>
<head>
  <title>用户信息管理</title>
  <meta name="viewport" content="width=device-width,initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
  <link href="assert/bootstrap.min.css" rel="stylesheet">
  <link href="user.css" rel="stylesheet">
</head>
<body>
 <div class="container">
  <!-- 按钮:用于打开模态框 -->
  <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal" id="add">
   增加用户信息
  </button>
  <!-- 模态框1 -->
  <div class="modal fade" id="myModal">
    <div class="modal-dialog">
      <div class="modal-content">
        <!-- 模态框头部 -->
        <div class="modal-header">
          <h4 class="modal-title">Add Reward info</h4>
          <button type="button" class="close" data-dismiss="modal">&times;</button>
        </div>
        <!-- 模态框主体 -->
        <div class="modal-body">
          <form>
           <div class="form-group">
             <label for="email">Merchart Name</label>
             <input type="text" class="form-control" id="username" placeholder="please into Merchart Name">
             <div class="error_box"></div>
           </div>
           <div class="form-group">
             <label for="code">Merchart Code</label>
             <input type="text" class="form-control" id="code" placeholder="please into Merchart Code">
             <div class="error_box"></div>
           </div>
           <div class="form-group">
             <label for="Number">Total Number</label>
             <input type="text" class="form-control" id="number" placeholder="please into Total Number">
             <div class="error_box"></div>
           </div>
           <div class="form-group">
             <label for="State">Start Time</label>
             <input type="text" class="form-control" id="start" placeholder="please into Start Time">
             <div class="error_box"></div>
           </div>
           <div class="form-group">
             <label for="end">end Time</label>
             <input type="text" class="form-control" id="end" placeholder="please into End Time">
             <div class="error_box"></div>
           </div>
           <div class="form-group">
             <label for="state">state</label>
             <input type="text" class="form-control" id="state" placeholder="please into state">
             <div class="error_box"></div>
           </div>
         </form>
       </div>
       <!-- 模态框底部 -->
       <button type="submit" class="btn btn-primary" id='addbtn'>ADD</button>
       <button type="submit" class="btn btn-primary" id="cancle">Cancle</button>
       <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">close</button>
      </div>
    </div>
  </div>
</div>
<!-- 模态框结束 -->
<!-- 搜索框 -->
<input type="text" class="form-control" id="search" placeholder="Please enter the Merchart Name you want to query ">
<button type="button" class="btn btn-primary"id="querybtn">搜索</button>
<!-- 主题部分 -->
<table  class="table table-striped">
  <thead>
    <tr>
      <th>
            <label>全选</label>
            <input type="checkbox" name="item" onclick="checkall(this);">
      </th>
      <th class="padding-right-xs padding-bottom-xs" >Merchart Name</th>
      <th class="padding-right-xs padding-bottom-xs" >Merchart Code</th>
      <th class="padding-right-xs padding-bottom-xs" >Total Number</th>
      <th>start time</th>
      <th>end time</th>
      <th>state</th>
      <th>option</th>
    </tr>
  </thead>
  <tbody id="tab">
    <button class="btn btn-primary" id="ALLdel" onclick="delRow()">批量删除</button>
    <tr>
      <td><input type="checkbox" name="item"/></td>
      <td class="padding-right-xs padding-top-xxs username">hanna</td>
      <td class="padding-right-xs padding-top-xxs">1234567</td>
      <td class="padding-right-xs padding-top-xxs">25</td>
      <td>2019/01/06</td>
      <td>2019/06/15</td>
      <td>expried</td>
      <td>
        <button type="button" class="btn btn-default btn-danger del" onclick="del(this);";>删除</button>
        <button type="button" class="btn btn-default btn-warning edit"data-toggle="modal" data-target="#myEdit" onclick="edit(this);">编辑</button></td>
    </tr>
    <tr>
        <td><input type="checkbox" name="item"/></td>
        <td class="padding-right-xs padding-top-xxs username">hanna</td>
        <td class="padding-right-xs padding-top-xxs">1234567</td>
        <td class="padding-right-xs padding-top-xxs">25</td>
        <td>2019/01/06</td>
        <td>2019/06/15</td>
        <td>expried</td>
        <td>
          <button type="button" class="btn btn-default btn-danger del" onclick="del(this);";>删除</button>
          <button type="button" class="btn btn-default btn-warning edit"data-toggle="modal" data-target="#myEdit" onclick="edit(this);">编辑</button></td>
      </tr>
      <tr>
          <td><input type="checkbox" name="item"/></td>
          <td class="padding-right-xs padding-top-xxs username">ivy</td>
          <td class="padding-right-xs padding-top-xxs">1234567</td>
          <td class="padding-right-xs padding-top-xxs">23</td>
          <td>2019/01/08</td>
          <td>2019/06/14</td>
          <td>expried</td>
          <td>
            <button type="button" class="btn btn-default btn-danger del" onclick="del(this);">删除</button>
            <button type="button" class="btn btn-default btn-warning edit"data-toggle="modal" data-target="#myEdit" onclick="edit(this);">编辑</button></td>
        </tr>
        <tr>
            <td><input type="checkbox" name="item"/></td>
            <td class="padding-right-xs padding-top-xxs username">jack</td>
            <td class="padding-right-xs padding-top-xxs">6543210</td>
            <td class="padding-right-xs padding-top-xxs">29</td>
            <td>2019/01/06</td>
            <td>2019/06/19</td>
            <td>current</td>
            <td>
              <button type="button" class="btn btn-default btn-danger del" onclick="del(this);">删除</button>
              <button type="button" class="btn btn-default btn-warning edit"data-toggle="modal" data-target="#myEdit" onclick="edit(this);">编辑</button></td>
          </tr>
          <tr>
              <td><input type="checkbox" name="item"/></td>
              <td class="padding-right-xs padding-top-xxs username">joe</td>
              <td class="padding-right-xs padding-top-xxs">5648527</td>
              <td class="padding-right-xs padding-top-xxs">18</td>
              <td>2019/01/05</td>
              <td>2019/06/18</td>
              <td>expried</td>
              <td>
                <button type="button" class="btn btn-default btn-danger del" onclick="del(this);" >删除</button>
                <button type="button" class="btn btn-default btn-warning edit"data-toggle="modal" data-target="#myEdit" onclick="edit(this);">编辑</button></td>
              </tr>
            <tr>
            <td><input type="checkbox" name="item"/></td>
            <td class="padding-right-xs padding-top-xxs username">jack</td>
            <td class="padding-right-xs padding-top-xxs">6543210</td>
            <td class="padding-right-xs padding-top-xxs">29</td>
            <td>2019/01/06</td>
            <td>2019/06/19</td>
            <td>current</td>
            <td>
              <button type="button" class="btn btn-default btn-danger del" onclick="del(this);">删除</button>
              <button type="button" class="btn btn-default btn-warning edit"data-toggle="modal" data-target="#myEdit" onclick="edit(this);">编辑</button></td>
          </tr>
            </tbody>
          </table>
        </div>
        <!-- 模态框2 -->
        <div class="modal fade" id="myEdit">
          <div class="modal-dialog">
            <div class="modal-content">
              <!-- 模态框头部 -->
              <div class="modal-header">
                <h4 class="modal-title">Edit Reward info</h4>
                <button type="button" class="close" data-dismiss="modal">&times;</button>
              </div>
              <!-- 模态框主体 -->
              <div class="modal-body">
                <form>
                 <div class="form-group">
                   <label for="email">Merchart Name</label>
                   <input type="text" class="form-control" id="change1" placeholder="please into Merchart Name">
                 </div>
                 <div class="form-group">
                   <label for="code">Merchart Code</label>
                   <input type="text" class="form-control" id="change2" placeholder="please into Merchart Code">
                 </div>
                 <div class="form-group">
                   <label for="Number">Total Number</label>
                   <input type="text" class="form-control" id="change3" placeholder="please into Total Number">
                 </div>
                 <div class="form-group">
                   <label for="State"
                   >State Time</label>
                   <input type="text" class="form-control" id="change4" placeholder="please into State Time">
                 </div>
                 <div class="form-group">
                   <label for="end">end Time</label>
                   <input type="text" class="form-control" id="change5" placeholder="please into End Time">
                 </div>
                 <div class="form-group">
                   <label for="state">state</label>
                   <input type="text" class="form-control" id="change6" placeholder="please into state">
                 </div>
               </form>
               <button type="submit" class="btn btn-primary" id="edited">Edited</button>
               <button type="submit" class="btn btn-primary" id='edit-cancle'>Cancle</button>
             </div>
             <!-- 模态框底部 -->
             <div class="modal-footer">
             <button type="button" class="btn btn-secondary" data-dismiss="modal">close</button>
            </div>
          </div>
        </div>
      </div>
      <!-- 模态框2 end -->
      <script src="assert/jquery-3.4.1.min.js"></script>
      <script src="assert/bootstrap.min.js"></script>
      <script type="text/javascript" src="user.js"></script>
    </body>
    </html>

由于页面中使用了bootstarp框架中的模态框,所以当点击添加和编辑按钮时,会弹出以下的效果图:
在这里插入图片描述
基本的页面布局就这样,下面就可以书写js脚本了。
1.实现添加数据:
思路:首先获取添加页面的每个表单的input的值,然后动态的创建tr,td并将其添加到table中即可,同时添加数据验证,当鼠标离开input框时对数据进行非空校验,数据为空时错误信息显示并且input边框变为红色,不为空时不显示错误信息,input框颜色正常。比较简单,代码实现如下:

// 获取dom元素
  var username =$('#username');
  var code=$("#code");
  var number=$("#number");
  var start=$('#start')
  var end=$("#end");
  var state=$("#state");
  var tab=$("#tab");
  var add =$("#add");
    //新增--------------------------------------------------
    var addbtn =document.getElementById("addbtn");
    isError1 = false;
    isError2 = false;
    isError3 = false;
    isError4 = false;
    isError5 = false;
    isError6 = false;
    add.on("click",function(){
      username.focus();
    })
    // 表单验证
    username.on("blur",function(){
      if (username.val().length==0){
        error[0].innerHTML = "Merchart Name cannot be empty ";
        username.css("borderColor","red");
        return;
      }else{
        error[0].innerHTML = "";
        username.css("borderColor","#ccc");
        isError1 = true;
      }
    });
    code.on("blur",function(){
      if (code.val().length==0){
        error[1].innerHTML = "MerchartCode cannot be empty ";
        code.css("borderColor","red");
        return;
      }else{
        error[1].innerHTML = "";
        code.css("borderColor","#ccc");
        isError2 = true;
      }
    });
    number.on("blur",function(){
      if (number.val().length==0){
        error[2].innerHTML = "TotalNumber cannot be empty ";
        number.css("borderColor","red");
        return;
      }else{
        error[2].innerHTML = "";
        number.css("borderColor","#ccc");
        isError3 = true;
      }
    });
    start.on("blur",function(){
      if (start.val().length==0){
        error[3].innerHTML = "StartTime cannot be empty ";
        start.css("borderColor","red");
        return;
      }else{
        error[3].innerHTML = "";
        start.css("borderColor","#ccc");
        isError4 = true;
      }
    });
    end.on("blur",function(){
      if (end.val().length==0){
        error[4].innerHTML = "endTime cannot be empty ";
        end.css("borderColor","red")
        return;
      }else{
        error[4].innerHTML = "";
        end.css("borderColor","#ccc");
        isError5 = true;
      }
    });
    state.on("blur",function(){
      if (state.val().length==0){
        error[5].innerHTML = "state cannot be empty ";
        state.css("borderColor","red")
        return;
      }else{
        error[5].innerHTML = "";
        state.css("borderColor","#ccc");
        isError6 = true;
      }
    });
    $(document).on('click',"#addbtn",function(){
      if(isError1&&isError2&&isError3&&isError4&&isError5&&isError6){
        //setAttribute:修改节点属性
      //新增框架
      var tr1 =document.createElement("tr");
        //赋值内容给tr
       tr1.innerHTML="<td><input type='checkbox' name='item'></td><td class='padding-right-xs padding-top-xxs username'>"+username.val()+"</td><td class='padding-right-xs padding-top-xxs'>"+code.val()+"</td><td class='padding-right-xs padding-top-xxs'>"+number.val()+"</td><td>"+start.val()+"</td><td>"+end.val()+"</td><td>"+state.val()+"</td><td><button type='button' class='btn btn-default btn-danger' onclick='del(this);' >删除</button><button type='button' class='btn btn-default btn-warning edit' data-toggle='modal' data-target='#myEdit' onclick='edit(this);'>编辑</button></td>"
        tab.append(tr1);
        alert("恭喜添加成功");
        resets();
        //取消-----------------------------------------------
        document.getElementById('cancle').onclick=function(){
          resets();
        }
    };
});

其中resets()函数的作用是清空文本框的内容,当添加完成以及用户点击了取消按钮时,均触发此函数,因为多次使用封装成函数,具体代码如下:

 //取消封装的函数
       function resets(){
        var inputs=document.getElementsByTagName("input");
        for(var i=0;i<inputs.length;i++){
          if(inputs[i].type=='text'){
            inputs[i].value="";
          }else if(inputs[i].type=='password'){
            inputs[i].value="";
          }else if(inputs[i].type=='checkbox'){
            if(inputs[i].checked){
              inputs[i].checked=false;
            }
          }else if(inputs[i].type=='radio'){
            if(inputs[i].checked){
              inputs[i].checked=false;
            }
          }
        }
       }  

2.实现编辑功能
思路:首先获取编辑表单的jquery元素,由于在动态添加表格时,添加了οnclick='edit(this)函数,此时只需要通过this找到需要编辑的行,在通过行查找对应的td,将对应的td的值赋值给表单中对应的值即可,具体代码如下:(此时并未添加数据校验,亲可以根据自己的需求添加)

//获取编辑表单的jquery元素
  var change1 =$("#change1");
  var change2 =$("#change2");
  var change3 =$("#change3");
  var change4 =$("#change4");
  var change5 =$("#change5");
  var change6 =$("#change6");
  var parentTr;
       var modify;
       edit=function(obj){
        var parentTr=obj.parentNode.parentNode;
        var modity_tr=parentTr.getElementsByTagName("td");
        change1.val(modity_tr[1].innerText);
        change2.val(modity_tr[2].innerText);
        change3.val(modity_tr[3].innerText);
        change4.val(modity_tr[4].innerText);
        change5.val(modity_tr[5].innerText);
        change6.val(modity_tr[6].innerText);
      //编辑完成
    $("#edited").on('click',function(){
        var modity_tr=parentTr.getElementsByTagName("td");
        modity_tr[1].innerText=change1.val();
        modity_tr[2].innerText=change2.val();
        modity_tr[3].innerText=change3.val();
        modity_tr[4].innerText=change4.val();
        modity_tr[5].innerText=change5.val();
        modity_tr[6].innerText=change6.val();
        alert("恭喜修改成功");  
    });
     //取消
     $("#edit-cancle").on("click",function(){
      resets(); 
     })
  } 

3.实现查询
思路:首先当搜索的文本框改变时,获取文本框的值,当点击搜索按钮时,先删除所有的行,然后获取所有的username,利用indexOf()方法查找其中包含搜索关键字的行重新添加到table中。具体实现代码:

  var search=$("#search");
  var querybtn=$("#querybtn");
  var cha =$(".username");
 var query;
        search.on("change",function(){
      query=search.val();
    })
    querybtn.on("click",function(){
      var tr =document.querySelectorAll("tr");
           //删除所有行
           for(var k=1;k<tr.length;k++){   
            tr[k].remove()
           }  
           console.log(cha);
          for(var j=0;j<cha.length;j++){
            if(cha[j].innerText.indexOf(query)>=0){
              var str=cha[j].parentNode;
            }
            tab.append(str);
          };  
        });     
  });

4.实现删除以及批量删除
思路:删除:由于动态生成时,添加了οnclick='del(this)函数,只需要找到要删除的数据所在的行,将其使用remove()方法删除即可,批量删除:首先获取父选框的选中状态,获取每个子复选框,如果子复选框被选中状态,取消其选中状态,最后使每个子复选框的状态与父复选框一致,最后判断获取选中的子复选框,找到其tr,在table中将其删除。具体代码如下

//删除该行
    del=function(obj){
      var parentTr=obj.parentNode.parentNode;
      var bool =confirm("小主,确定要删除这行吗?");
      if(bool){
            parentTr.remove() //删除一行
        };
    };
    //全选
    checkall=function (obj){
    var checked=obj.checked;
    var item=document.getElementsByName("item");
    for(var i=0;i<item.length;i++){
      if(item[i].checked){
        item[i].checked=null; 
      }else{
        item[i].checked=checked;
      }
      item[i].checked=checked;  
    }
  }
  //删除选中
  delRow=function(){
    var items=document.getElementsByName("item");
    for(var i=1;i<items.length;i++){
      if(items[i].checked){
        var parentNode=items[i].parentNode.parentNode;
        var tables=parentNode.parentNode;
        tables.removeChild(parentNode);
        i--;
      }
    }
  }
  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是一个使用 jQuery 实现增删改查的前端页面的基本示例: HTML 代码: ``` <!DOCTYPE html> <html> <head> <title>增删改查示例</title> <meta charset="utf-8"> <script src="https://cdn.bootcss.com/jquery/3.5.1/jquery.min.js"></script> </head> <body> <h1>增删改查示例</h1> <input type="text" id="name" placeholder="姓名"> <input type="text" id="age" placeholder="年龄"> <button id="add-btn">添加</button> <hr> <ul id="user-list"></ul> <script src="./main.js"></script> </body> </html> ``` JavaScript 代码(main.js): ``` $(function () { // 模拟数据 var userList = [ { name: "张三", age: 20 }, { name: "李四", age: 22 }, { name: "王五", age: 25 } ]; // 页面初始化 renderList(userList); // 添加用户 $("#add-btn").on("click", function () { var name = $("#name").val(); var age = $("#age").val(); if (name && age) { var user = { name: name, age: age }; userList.push(user); renderList(userList); $("#name").val(""); $("#age").val(""); } else { alert("请输入姓名和年龄!"); } }); // 删除用户 $("#user-list").on("click", "button.delete-btn", function () { var index = $(this).data("index"); userList.splice(index, 1); renderList(userList); }); // 编辑用户 $("#user-list").on("click", "button.edit-btn", function () { var index = $(this).data("index"); var user = userList[index]; $("#name").val(user.name); $("#age").val(user.age); userList.splice(index, 1); renderList(userList); }); // 渲染用户列表 function renderList(list) { var html = ""; for (var i = 0; i < list.length; i++) { var user = list[i]; html += "<li>" + user.name + "," + user.age + "岁"; html += "<button class='edit-btn' data-index='" + i + "'>编辑</button>"; html += "<button class='delete-btn' data-index='" + i + "'>删除</button>"; html += "</li>"; } $("#user-list").html(html); } }); ``` 这个示例实现了一个简单的增删改查功能,你可以在输入框中输入姓名和年龄,点击添加按钮即可添加用户。用户列表会显示在页面中,并且每个用户会有一个编辑和删除按钮。你可以根据需要修改代码以满足你的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值