【Demo】jQuery 可编辑表格

 功能实现:

(1)设定单元格的单击事件,判定被单击单元格是否已经是可编辑状态;

(2)取出单元格原有内容,想单元格中加入文本框,并把原有内容显示在文本框中;

(3)当用户编辑完成或者取消编辑后,将文本框的值取出,删除文本框,并将值在单元格中显示。

效果图:

原始表格 

完整代码:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript" src="../js/jquery-3.2.1.min.js"></script>
    <style media="screen">
        table {
            border-collapse: collapse;
            border-color: rgba(205, 193, 222, 0.84);
        }
    </style>
</head>

<body>
    <table border="1">
        <thead>
            <tr>
                <th>
                    &nbsp;编号&nbsp;
                </th>
                <th>
                    &nbsp;语言&nbsp;
                </th>
                <th>
                    &nbsp;课时&nbsp;
                </th>
                
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>c001</td>
                <td>c#</td>
                <td>80</td>
            </tr>
            <tr>
                <td>c002</td>
                <td>Java</td>
                <td>70</td>
            </tr>
            <tr>
                <td>c003</td>
                <td>PHP</td>
                <td>60</td>
            </tr>
            <tr>
                <td>c004</td>
                <td>Perl</td>
                <td>50</td>
            </tr>
        </tbody>
    </table>

   <script>
        $(document).ready(function() {
            $('tbody tr td').click(function(){            //单元格单击事件
                var alerttd = $(this);
                if (alerttd.children('input').length > 0) {        //判断单元格是否是编辑状态
                        return false;                
                }
                var htmlcontent = alerttd.html();            //取出单元格原有内容
                alerttd.html("");                    //清空单元格内容
                var textbox = $("<input type='text' />").css("border-width","1").css("background-color","gray").width(alerttd.width()).val(htmlcontent).appendTo(alerttd);
                //将文本框加入单元格并显示原有内容
                textbox.trigger("focus").trigger("select");
                textbox.click(function(){
                    return false;
                });
                textbox.keyup(function(event){
                    var keycode = event.which;
                    if (keycode == 13) {        //用户单击回车键,刷新单元格内容
                        var inputtext = $(this).val();
                        alerttd.html(inputtext);
                    }
                    if (keycode == 27) {        //单击Esc键表示放弃编辑内容,显示原始单元格内容
                        alerttd.html(htmlcontent);
                    }
                });
                
            });
            
        });
    </script>
    
  
</body>

</html>

 

 

 

 

 

转载于:https://www.cnblogs.com/lymblog/p/7463548.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值