jquery实现点击编辑的表格实例

可编辑的表格,指的是,在单元格上单击后,该格数据可以编辑,回车后,通过ajax保存,实现无刷新编辑。
原理:在点击单元格后,把该格内容替换成一个input标签,当用户编辑完按回车后,再通过ajax把编辑后的内容发送给服务器,把单元格内容换成编辑后的内容。

html代码:

 代码如下 复制代码

<table width="622" border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td width="129">歌名</td>
    <td width="127">歌手</td>
    <td width="152">排序</td>
    <td width="165">删除</td>
  </tr>
    <tr id="content" musicId="2">
    <td>那些年</td>
    <td>胡夏ff</td>
    <td>1</td>
    <td><button class="del">删除</button></td>
  </tr>
  </table>

my.js:

 代码如下 复制代码

$(function(){
    $("#content td").click(function(){
        //id为content的元素的td子元素被点击时执行
        var musicId = $(this).parent().attr("musicId");
        //读取musicId
        var td = $(this);
        if ((td.children("input").length > 0) || td.index() == 3) {//如果已经是input,或者是删除那一格,不执行操作
            return;
        }
        var input = $("<input type='text'>");
  //定义一个input标签
        var text = td.html();
        //保存原先值
        td.html("");
        //清空
        input.val(text).css("border", "none").width(td.width()).css("font-size", "16px").appendTo(td);
  //设置默认值为原先的值,无边框,与td同宽,字体大小16px,加到td里
        input.trigger("focus").trigger("select");
        //获取焦点,并选中
        var argName = "";
        switch (td.index()) {
   //index方法最出当前被点中被几列
            case 0:
                argName = "musicName";
                break;
            case 1:
                argName = "singer";
                break;
            case 2:
                argName = "sort";
        }
        //根据点第几列,确定参数名
        input.keyup(function(event){
            var keycode = event.which;
            //取键值,回车为13,esc为27
            if (keycode == 27) {
                td.html(text);
                //设回原来的值
            }
            if (keycode == 13) {
                var newValue = $(this).val();
                //取出经编辑的值
                if (td.index() == 2) {
                    if (!isInteger(newValue)) {
                        alert("排序必须是整数");
                        $(this).val(text);
                        return false;
                    }
                }
                td.html(newValue);
 
                var arg = {};
                arg[argName] = newValue;
                arg['musicId'] = musicId;
                $.post("edit_ajax.php", arg);
                //ajax发送更新指令
            }
        });
    });
    $("button.del").click(function(){
        //class为del的button点击时执行
        var musicId = $(this).parent().parent().attr("musicId");
        $(this).parent().parent().remove();
        //移除该行
        var arg = {};
        arg["action"] = "del";
        arg['musicId'] = musicId;
        $.post("edit_ajax.php", arg);
        //ajax发送删除指令
    });
 
});
 
function isInteger(str){
 //判断是否为整数
    var regu = /^[-]{0,1}[0-9]{1,}$/;
    return regu.test(str);
}

edit_ajax.php

这个ajax文件就是一个php接受ajax提交过来的数据了,这个与其它php提交数据一样的就不介绍了。

时间: 2024-12-31 23:17:33

jquery实现点击编辑的表格实例的相关文章

JQuery实现可直接编辑的表格_jquery

本文实例讲述了JQuery实现可直接编辑的表格.分享给大家供大家参考.具体分析如下: 功能: 创建一个表格,用户单击某个单元格后,可以直接修改单元格文本. 在编辑状态下,用户可按回车键确认修改,按ESC键撤销修改. 效果如下图: 思路: 当用户点击某个单元格后,立即向该单元格内插入一个文本框,将它的宽.高都设置成与单元格相的数值.用户确认输入后,清空该单元格内的所有HTML代码,然后把内容设置为用户刚刚输入的文本. HTML代码: <table align="center">

jQuery实现可以编辑的表格实例详解【附demo源码下载】_jquery

本文实例讲述了jQuery实现可以编辑的表格.分享给大家供大家参考,具体如下: 今天小编主要给大家讲解一下,如何利用jQuery+js+css实现表格的编辑.接下来,小编就简单总结一下如何实现这个小例子. 第一步:编写html代码,代码如下所示: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> &l

JQuery实现可编辑的表格实例讲解(2)_jquery

我们最终要达到的效果如下: 当单击学号列的时候,可以进行编辑: 当单击ESC的时候,操作取消,当单击回车的时候,修改生效(没有与后台交互) 页面代码如下(asp.net): <%@ Page Language="C#" AutoEventWireup="true" CodeFile="EditTable.aspx.cs" Inherits="EditTable" %> <!DOCTYPE html PUBLI

基于jQuery实现点击弹出层实例代码_jquery

jquery实现点击链接弹出层效果:本例实现的主要原理:jquery操作DOM元素.对层样式的设置.将display:设置为none;让层隐藏: 代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.jb51.net" /> <tit

JQuery实现可直接编辑的表格

 功能: 创建一个表格,用户单击某个单元格后,可以直接修改单元格文本. 在编辑状态下,用户可按回车键确认修改,按ESC键撤销修改. 效果如下图: 思路: 当用户点击某个单元格后,立即向该单元格内插入一个文本框,将它的宽.高都设置成与单元格相的数值.用户确认输入后,清空该单元格内的所有HTML代码,然后把内容设置为用户刚刚输入的文本. HTML代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <table align="center"

jquery editable plugin--点击编辑文字插件

这是一个真正可定制的jQuery editable plugin.当前它能够将任意不可编辑的标签(span.div.p...等)转换成可编辑的text input.password.textarea.下拉列表(drop-down list)等标签.你可以利用它的editableFactory对象来扩展添加自己所需的input type.     先引入插件的js文件,在页面放置要编辑的文字:     <div class="d">编辑的文字</div>    

基于PHP+Jquery制作的可编辑的表格的代码_jquery

table.php 复制代码 代码如下: <?php header("Content-Type:text/html;charset=utf-8"); $mysqli=new MySQLi("localhost","root","123456","xiaoqiangdb"); if(mysqli_connect_errno){ echo "连接数据库失败".mysqli_connec

jQuery 防止点击事件重复提交实例

定义全局标示符  代码如下 复制代码 //代码片段 var ddClick=false;  $(".cai").bind('click',function(){           if(ddClick){return;}           post_dig('cai');  });  $(".zan").bind('click',function(){           if(ddClick){return;}            post_dig('zan

jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】_jquery

本文实例讲述了jQuery实现点击表格单元格就可以编辑内容的方法.分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/