js实现点击修改按钮之后单元格变成可编辑状态

该博客介绍了如何使用JavaScript实现在表格中点击修改按钮后,单元格变为可编辑状态。点击后,单元格内容被替换为input输入框,允许用户编辑。当输入框失去焦点时,应通过AJAX更新数据并恢复单元格原状。
摘要由CSDN通过智能技术生成

主要实现原理:

每一行有一个修改按钮 点击修改之后,获取行对象,通过行对象再获取行中单元格数组。然后把每一个单元格中的innerHTML替换成input输入框,并赋值value=原来单元格中的内容,鼠标移开之后还原。

效果图:点击之前

           点击之后

    修改之后移开失去焦点:

这里应该还要当鼠标移开之后也就是失去焦点事件就触动函数,用ajax把数据提交到数据中去,并且输入框变回到原来的形式

 完整代码:

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 2         "http://www.w3.org/TR/html4/loose.dtd">
 3 <html>
 4 <head>
 5     <title>asd</title>
 6     <meta charset=utf-
以下是修改后的代码: HTML部分: ``` <table id="myTable"> <thead> <tr> <th>Name</th> <th>Age</th> <th>City</th> <th>Edit</th> </tr> </thead> <tbody> <tr> <td contenteditable="true">John</td> <td contenteditable="true">28</td> <td contenteditable="true">New York</td> <td><button onclick="editRow(this)">Edit</button></td> </tr> <tr> <td contenteditable="true">Mary</td> <td contenteditable="true">25</td> <td contenteditable="true">Los Angeles</td> <td><button onclick="editRow(this)">Edit</button></td> </tr> <tr> <td contenteditable="true">Bob</td> <td contenteditable="true">30</td> <td contenteditable="true">Chicago</td> <td><button onclick="editRow(this)">Edit</button></td> </tr> </tbody> </table> ``` JavaScript部分: ``` function editRow(button) { var row = button.parentNode.parentNode; var cells = row.getElementsByTagName("td"); for (var i = 0; i < cells.length - 1; i++) { var cell = cells[i]; var text = cell.innerHTML; cell.innerHTML = '<input type="text" value="' + text + '">'; } button.innerHTML = "Save"; button.onclick = function() { saveRow(this); }; } function saveRow(button) { var row = button.parentNode.parentNode; var cells = row.getElementsByTagName("td"); for (var i = 0; i < cells.length - 1; i++) { var cell = cells[i]; var input = cell.getElementsByTagName("input")[0]; var text = input.value; cell.innerHTML = text; } button.innerHTML = "Edit"; button.onclick = function() { editRow(this); }; } ``` 在修改后的代码中,我们给每个单元格添加了 `contenteditable="true"` 属性,这使得单元格内容可编辑。在 `editRow` 函数中,我们把单元格内容替换成了包含文本框的 HTML 代码,这样就可以编辑单元格了。在 `saveRow` 函数中,我们获取了每个单元格中的文本框的值,然后把单元格内容替换成了这个值,这样就完成了单元格修改
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值