多语言展示
当前在线:1232今日阅读:91今日分享:37

js设置表头可编辑

在网页设计中,表头通常是不能编辑的,假设遇到非要编辑的情况,该如何处理呢?本文就介绍使用js设置表头可编辑,而且不使用其他列表控件,就对原生table标签操作
方法/步骤
1

打开vscode创建一个测试页面,暂时叫扯菌帽做 JsTable.html,用于演示js如何设置表头可编川侧辑。如果没有vscode,使用其他编辑工具也是一样的

2

为了js操作的便利性,本文引入jquery进行js操作。先将jquery源文件下载到 JsTable.html 同级目录,然后在html页面中引入jquery

3

在测试页面中,添加一个table表格,设置table表格的边框,此时table表格是只读的,不能编辑的

4

在测试页面的底部,添加js代码,绑定table表头的点击事件,当点击表头区域的时候将单元格替换成input标签// 绑定表格表头单元格的点击事件$('#tblDemo thead th').on('click', function(event){    var $th = $(this);    // 如果th中已经有文本框了,就不处理这个事件了    var $input = $th.find('input');    if($input.length > 0){        return false;    }    // 如果th中没有文本框,就获取值,添加文本框    var val = $th.text();    $th.html('');    // 阻止事件冒泡    event.stopPropagation();});

5

绑定页面document的点击事件,当点击表头之外的地方时,去掉表头字段的编辑状态,恢复只读状态。请注意,此处的演示仅仅只在界面操作,并没有保存数据库,假设需要更新到数据库,可以使用ajax的方式将变更后的值提交到数据库即可// 绑定页面的点击事件,点击页面任何地方都将表头的编辑状态去掉$(document).on('click', function(){    $('#tblDemo thead th input').each(function(){        var $input = $(this);        var $th = $input.parent('th:first');        $th.text($input.val());    });});

6

在浏览器中打开测试页面,默认看到的列表是只秤材读的,当点击表头区域的时候,对应的单元格就会变成文本框可编辑状态

7

在编辑框内输入新的值,然后,点击表头之外的任何地方,就能将修改后的值显示在标题中,并且看起来是只读状态,再次点击又可以编辑了

推荐信息