yf2000 2013-01-30 17:14
浏览 441
已采纳

jQuery 编辑本行时可以保存,但是新增一行时,输入数据,却不能保存

正常的操作描述如下:
1、点击[b]Edit[/b]时,可编辑数据,然后点击[b]Save[/b],显示编辑后的数据;
2、点击[b]Add[/b]时,表格添加一行,可在输入框输入数据,然后点击[b]Save[/b],显示输入的数据;

[table]
|[b]Id[/b] | [b]Name[/b] | [b]Action[/b] |
|0 | abc | [b]Add[/b] [b]Edit[/b] |
|1 | 1 | [b]Add[/b] [b]Edit[/b] |

[/table]

问题是点击[b]Add[/b],输入数据,点击[b]Save[/b]无反应啊,求教是什么原因?
下面的代码可以直接复制粘贴运行。

[code="java"]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



    <title>无标题文档</title>
    <style type="text/css">
        #test {
            border: solid 1px
        }

        #test td {
            border: solid 1px;
            width: 200px
        }
    </style>

    <script type="text/javascript">
        $(document).ready(function(){  
        $trs = $("tr");//

        var head = true;
        var editVal = {};//编辑时存储原始值

        var button = "<td><a href='#' class='add'>Add</a> <a href='#' class='edit'>Edit</a> <a href='#' class='save'>Save</a>";
        $trs.each(function (i, tr) {//添加操作列
            if (head) {
                $(tr).append("<td>Action</td>");
                head = false;
                return true;
            }
            $(tr).append(button);
        });

        $(".save").hide();//隐藏确定、取消按钮;只有在添加、编辑状态时显示

       /**
        *  正常状态下的添加事件
        *  在当前行下插入一行
        */
        $(".add").click(function(){

            var $tr = $(this).parents("tr");
            var tr = $("<tr>");
            var count = $("td", $tr).length;

            $("td",$tr).each(function(i){
                if(i<count-1){
                    tr.append($("<td>").html($("<input>")));
                }
            });

            tr.attr("pId",$tr.attr("id"));
            tr.append(button);
            $tr.after(tr);

            $(".add, .edit").hide();
            $(".save", tr).show();
            return false;
        });

        /**
         *  正常状态下的编辑事件
         *  
         */
       $(".edit").click(function () {
            var $tr =$(this).parents("tr");
            var count = $("td",$tr).length;

            $("td",$tr).each(function(i){
                if(i<count-1){
                    //编辑前应保存原始值
                    editVal[i] = $(this).text();
                    $(this).html($("<input>").val($(this).text()));
                }
            });

            $(".add, .edit").hide();
            $(".save", $tr).show();
            return false;
       });

        /**
         *  编辑状态下的保存事件
         *  添加状态下的取消事件
         */
       $(".save").click(function () {
            var $tr =$(this).parents("tr");
            var count = $("td",$tr).length;

            $("td",$tr).each(function(i){
                if(i<count-1){
                    //alert($(this).find("input").val());
                    $(this).html($(this).find("input").val());
                }
            });

            $(".add, .edit").show();
            $(".save", $tr).hide();
            return false;
       });

    });

</script>
</head>

<body>
    <table id="test">
        <thead>
            <tr>
                <td>
                    Id
                </td>
                <td>
                    Name
                </td>


            </tr>
        </thead>
        <tbody id="tbody">
            <TR id="1">
                <td>
                    0
                </td>
                <td>
                    abc
                </td>


            </TR>
            <TR id="2">
                <td>
                    1
                </td>
                <td>
                    1
                </td>


            </TR>
        </tbody>
    </table>
</body>


[/code]

  • 写回答

3条回答 默认 最新

  • jinbingchuan 2013-01-30 19:57
    关注

    没反应说明是你没有给save动态添加事件,也就是每个动态添加的save都是需要添加事件的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件